2010-12-16 83 views
3
int bufferSize = 8192; 
Byte[] buffer = new Byte[bufferSize]; 

我需要从NetworkStream中读取一个高速连续传入数据流。我想知道如何估计从NetworkStream中读取的字节数组/缓冲区的大小?

  • 什么应该是设置bufferSize值的基础?
  • 是否有一个标准的“安全”值可以选择 而不考虑 环境?
  • 它应该也因流 我试图读 (FileStream/NetworkStream/..)?

请把性能作为估算的重点。

+1

很难相信没有人对此查询有任何答案!甚至没有指向最好的方法..: - \ – 2010-12-20 07:59:16

回答

0

只有一种方法可以优化绩效:衡量,衡量,衡量。

我已经看到1024,4096或8192作为从互联网下载文件的缓冲区大小,我没有注意到使用任何一个显着差异。

+3

请注意,8192是真正的最高你应该去,因为Winsock内部缓冲区是8K。不确定在更新版本的Windows中是否发生了变化。 – DarrellNorton 2010-12-16 11:45:40

+0

那么,我应该总是最大化读取缓冲区以获得最佳性能? – 2010-12-18 05:58:27

相关问题