Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengoptimumkan prestasi menggunakan muat naik fail HTTP di Golang?

Bagaimana untuk mengoptimumkan prestasi menggunakan muat naik fail HTTP di Golang?

PHPz
PHPzasal
2024-06-04 14:16:05869semak imbas

Amalan terbaik untuk mengoptimumkan prestasi muat naik fail HTTP Golang: Tetapkan had memori yang munasabah: r.MaxMemory = 32 << 20 // 32MB Gunakan fail sementara apabila menyimpan fail besar: if err := r.ParseMultipartForm(32 < < ; 20); err != nil { ... } Dayakan pemprosesan serentak Goroutine: taip multipartFile struct { ... }, func saveFilesConcurrently(files []multipartFile) { ... } Gunakan algoritma pemampatan untuk mengurangkan saiz fail: import " github.com/klauspost/compress/gzip", func compressImage(file multipartFile) { ... }Menggunakan CDN, jawapan cache dan pengoptimuman kod

如何在 Golang 中使用 HTTP 文件上传优化性能?

Cara mengoptimumkan prestasi menggunakan muat naik fail HTTP dalam Golang

Kes amalan: Optimumkan muat naik imej

Tetapkan had memori yang munasabah

r.MaxMemory = 32 << 20 // 32MB

Gunakan fail sementara untuk menyimpan fail besar

if err := r.ParseMultipartForm(32 << 20); err != nil {
    return // 处理错误
}
for _, file := range r.MultipartForm.File["images"] {
    f, err := os.CreateTemp("", "image-*.jpg")
    if err != nil {
        return // 处理错误
    }
    if _, err := io.Copy(f, file); err != nil {
        return // 处理错误
    }
    f.Close()
    // ...
}

Dayakan pemprosesan serentak Goroutine

type multipartFile struct {
    *multipart.FileHeader
    *os.File
}

func saveFilesConcurrently(files []multipartFile) {
    var wg sync.WaitGroup
    for _, file := range files {
        wg.Add(1)
        go func(f multipartFile) {
            defer wg.Done()
            // ...
        }(file)
    }
    wg.Wait()
}

Petua pengoptimuman tambahan

  • Gunakan CDN: Menyimpan fail statik pada CDN boleh mengurangkan beban pelayan.
  • Cache respons: Gunakan pengepala untuk cache respons yang biasanya tidak berubah. Cache-Control
  • Pengoptimuman Kod: Gunakan alat analisis prestasi untuk mengenal pasti dan menghapuskan kesesakan.

Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan prestasi menggunakan muat naik fail HTTP di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn