我尝试从网络设备读取文件,我想测量时间,需要读取文件(以便检查设备+网络的性能)。
如果我使用robocopy,我可以看到120Mbit / s的速度(通过wireshark,我可以看到数据包大小为32kByte)。
如果我使用此代码:
Private Sub LangerVorgang()
Dim sb As New IO.FileStream(TextBox1.Text, IO.FileMode.OpenOrCreate)
sr = sb
len = sr.Length - 1
Dim buffer(32768) As Byte
Dim bytesread As Integer
pos = sr.Position
While sr.Position < len
bytesread = (sr.Read(buffer, 0, 32768))
End While
sr.Close()
End Sub
我只获得大约90Mbit / s,通过Wireshark它也使用32kByte。
此代码在单独的Thread中运行。
有人可以告诉我,为什么这很慢?
如果我制作一个更大的缓冲区(如1M),速度更快,但测量结果更差,所以我想使用大约32kByte。
谢谢