1

I'm using HttpWebRequest / HttpWebResponse to download an image file from a remote server to my own web server. The code is working fine, but I don't know if the buffer size I've chosen is the optimum size for best performance.

How would I go about choosing the right buffer size?

My code is below - you can see it's currently using a buffer size of 4096 - that's just an arbitrary number I chose:

    ' 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
4

0 回答 0