int bufferSize = 8192;
Byte[] buffer = new Byte[bufferSize];
我需要從NetworkStream中讀取一個高速連續傳入數據流。我想知道如何估計從NetworkStream中讀取的字節數組/緩衝區的大小?
- 什麼應該是設置
bufferSize
值的基礎? - 是否有一個標準的「安全」值可以選擇 而不考慮 環境?
- 它應該也因流 我試圖讀 (FileStream/NetworkStream/..)?
請把性能作爲估算的重點。
int bufferSize = 8192;
Byte[] buffer = new Byte[bufferSize];
我需要從NetworkStream中讀取一個高速連續傳入數據流。我想知道如何估計從NetworkStream中讀取的字節數組/緩衝區的大小?
bufferSize
值的基礎?請把性能作爲估算的重點。
只有一種方法可以優化績效:衡量,衡量,衡量。
我已經看到1024,4096或8192作爲從互聯網下載文件的緩衝區大小,我沒有注意到使用任何一個顯着差異。
請注意,8192是真正的最高你應該去,因爲Winsock內部緩衝區是8K。不確定在更新版本的Windows中是否發生了變化。 – DarrellNorton 2010-12-16 11:45:40
那麼,我應該總是最大化讀取緩衝區以獲得最佳性能? – 2010-12-18 05:58:27
很難相信沒有人對此查詢有任何答案!甚至沒有指向最好的方法..: - \ – 2010-12-20 07:59:16