2010-12-16 57 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

相關問題