ファイルに書き込むたびに FlushFileBuffers を使用するか、同じファイルを開く必要があるたびに FILE_FLAG_NO_BUFFFERING を使用するかを選択しようとしています。
しかし、1 つまたは別のオプションの使用に関するパフォーマンス比較表は見つかりませんでした。まあ、MSDNのこのアドバイスを除いて:
アプリケーションがディスクへの複数の書き込みを実行しており、重要なデータが永続メディアに確実に書き込まれるようにする必要がある場合、アプリケーションは頻繁に FlushFileBuffers を呼び出すのではなく、バッファリングされていない I/O を使用する必要があります。バッファリングされていない I/O 用にファイルを開くには、FILE_FLAG_NO_BUFFERING フラグと FILE_FLAG_WRITE_THROUGH フラグを指定して CreateFile 関数を呼び出します。これにより、ファイルの内容がキャッシュされなくなり、書き込みごとにメタデータがディスクにフラッシュされます。
したがって、私は次のように仮定しています: 何度も読み書きするアプリケーションの場合は、FlushFileBuffers を使用しない方がよいでしょう。しかし、それらの使用に関する比較記事、ブログ、フォーラム投稿はありますか? 書き込み後にファイルが閉じられている場合はどうなりますか? 私のgoogle-fuはまだ何も取得していません。