C# 如何估计从NetworkStream读取的字节数组/缓冲区的大小?
我需要从一个网络流中读取数据,该网络流将以高速率连续传输传入数据。我想知道C# 如何估计从NetworkStream读取的字节数组/缓冲区的大小?,c#,.net,buffer,networkstream,C#,.net,Buffer,Networkstream,我需要从一个网络流中读取数据,该网络流将以高速率连续传输传入数据。我想知道 设置bufferSize值的依据是什么 是否有一个标准的“安全”值 可以选择,而不考虑 环境 它是否也应随水流而变化 我正试着从我的书里读 (FileStream/NetworkStream/) 请将性能作为评估的重点。 只有一个确定的方法来优化性能:度量、度量、度量。< /P> 我见过1024、4096或8192用作从internet下载文件的缓冲区大小,但我没有注意到使用这两种缓冲区有任何显著差异。请注意,819
- 设置
值的依据是什么bufferSize
- 是否有一个标准的“安全”值 可以选择,而不考虑 环境
- 它是否也应随水流而变化 我正试着从我的书里读 (FileStream/NetworkStream/)
请将性能作为评估的重点。
只有一个确定的方法来优化性能:度量、度量、度量。< /P>
我见过1024、4096或8192用作从internet下载文件的缓冲区大小,但我没有注意到使用这两种缓冲区有任何显著差异。请注意,8192实际上是您应该使用的最高缓冲区,因为Winsock内部缓冲区是8k。不确定这在较新版本的Windows中是否发生了变化。因此,我是否应该始终最大化读取缓冲区以获得最佳性能?很难相信没有人能回答这个问题!甚至没有指向最佳方法的指针..:-\
int bufferSize = 8192;
Byte[] buffer = new Byte[bufferSize];