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

入力データの連続的な流れが高速であるNetworkStreamから読み取る必要があります。私は知りたかったNetworkStreamから読み込むバイト配列/バッファのサイズを見積もる方法は?

  • bufferSizeの値を設定するための基礎は何ですか?
  • の環境にかかわらず を選択できる標準の「安全な」値はありますか?
  • また、ストリームによって異なるはずですか (FileStream/NetworkStream/..)から読み取ろうとしていますか?

推定を重視してパフォーマンスを考慮してください。

+1

誰もこの質問に答えられないとは考えにくいです! - \ –

答えて

0

性能を最適化する確実な方法は、測定、測定、測定のみです。

私はインターネットからファイルをダウンロードするためのバッファサイズとして1024、4096、または8192を使用していますが、いずれかを使用しても大きな違いはないことに気付きました。

+3

Winsockの内部バッファが8k​​であるので、8192が本当に最高になることに注意してください。最新のバージョンのWindowsでそれが変更されているかどうかは不明です。 – DarrellNorton

+0

したがって、最高のパフォーマンスを得るためには常にリードバッファを最大にする必要がありますか? –

関連する問題