でのReadFileを使用するときに読み込むバイトの最大数を決定する私は、Windows APIののReadFile関数を呼び出す必要があります:私は興味プログラマーがプロセスを考えた:Windows APIの
BOOL WINAPI ReadFile(
_In_ HANDLE hFile,
_Out_ LPVOID lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Out_opt_ LPDWORD lpNumberOfBytesRead,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
引数を3一つである:バイトの最大数が読み取られる
[IN]
nNumberOfBytesToRead。
私はそこに置くのはあまり興味がありませんが、熟練したプログラマーは、そこに置く数を決定することが好ましく、番号が付けられたステップであることが好ましいです。
私はアセンブラで自分のプログラムを書いているので、私はその考え方から思考過程にもっと興味があることを覚えておいてください。
関連:http://stackoverflow.com/questions/236861/how-do-you-determine-the-ideal-buffer-size-when-using-fileinputstream 4096の倍数を試してみることをお勧めしますベンチマーク結果一般に、小さすぎるバッファはパフォーマンスに重大な影響を与えますが、大きすぎるバッファはわずかに効率が悪いだけです。たとえば、キャッシュエフェクトを考慮する必要があります。 – tux3
この質問は少し広すぎるかもしれません。ファイル全体をメモリにロードしているので、高速ランダムアクセスが可能ですか、それとも順番に処理したいだけですか?スピード/スペースのトレードオフをどうやって調整しますか?どのようにこれが最初に使用する適切なAPIであると判断しましたか?キャッシュや正規化を提供するラッパーを使用する必要があります。あなたは非同期I/Oを使用するつもりですか? –