Go로 효율적으로 대용량 파일 다운로드
대용량 파일을 다운로드할 때는 콘텐츠를 쓰기 전에 메모리에 전체 콘텐츠를 저장하지 않는 것이 중요합니다. 파일. 이 접근 방식은 메모리를 압도하여 성능 문제를 일으킬 수 있습니다. Go에는 이 작업을 처리하는 더 효율적인 방법이 있습니다.
직접 파일 저장
Go에서 대용량 파일을 다운로드하면서 콘텐츠를 파일에 직접 저장하려면 , io.Copy 기능을 활용하세요. 다음은 이를 달성하는 방법을 보여주는 코드 조각입니다.
import ( "net/http" "io" "os" ) func main() { out, err := os.Create("output.txt") if err != nil { // Handle error } defer out.Close() resp, err := http.Get("http://example.com/") if err != nil { // Handle error } defer resp.Body.Close() n, err := io.Copy(out, resp.Body) if err != nil { // Handle error } // Do something with n, e.g. print it }
이 예에서 http.Response.Body는 io.Copy와 같은 기능과 함께 사용할 수 있는 판독기입니다. 전체 파일을 메모리에 로드하는 대신 한 번에 청크를 읽고 쓰므로 메모리 활용도가 극대화됩니다.
위 내용은 메모리 과부하 없이 이동 중에 대용량 파일을 효율적으로 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!