Как определить размер буфера при загрузке файла с использованием HttpWebRequest и HttpWebResponse?

Я использую HttpWebRequest / HttpWebResponse для загрузки файла изображения с удаленного сервера на свой собственный веб-сервер. Код работает нормально, но я не знаю, является ли размер буфера, который я выбрал, оптимальным для лучшей производительности.

Как мне выбрать правильный размер буфера?

Мой код ниже - вы можете видеть, что он в настоящее время использует размер буфера 4096 - это просто произвольное число, которое я выбрал:

    ' Create the web request
    Dim myWebRequest As HttpWebRequest = HttpWebRequest.Create("http://www.petiquettedog.com/wp-content/uploads/2010/04/sadpug-300x225.jpg")

    ' Automatically decompress gzip/deflate compressed images. This line sets the Accept-Encoding header to "gzip, deflate"
    myWebRequest.AutomaticDecompression = DecompressionMethods.GZip or DecompressionMethods.Deflate

    Using myWebResponse As HttpWebResponse = myWebRequest.GetResponse()
        ' Download the image to disk
        Using streamIn As Stream = myWebResponse.GetResponseStream()
            Using streamOut As FileStream = File.Create(localFilePhysical)
                Dim bufferSize As Integer = 4096
                Dim bytes(bufferSize) As Byte
                Dim numBytes As Integer
                numBytes = streamIn.Read(bytes, 0, bufferSize)
                While numBytes > 0
                    streamOut.Write(bytes, 0, numBytes)
                    numBytes = streamIn.Read(bytes, 0, bufferSize)
                End While
            End Using
        End Using
    End Using

0 ответов

Другие вопросы по тегам