1

Linux上に非常に高速で無限のデータソース(ソケット、/ dev/nullまたは/dev/ randomなど)があり、そのようなデータをC /C++のディスクに書き込む必要があるとします。特定のハードウェアでそれを達成するための最速のコードは何ですか?fwrite()、バッファなしのwrite()、いくつかのブーストASIO関数?

4

1 に答える 1

1

生の出力速度に関しては、テスト、QoI、プラットフォーム、作成しているもの、およびFILE、fstream、POSIXプリミティブのいずれかが他のもののホールホストに応じて、ベンチマークを行う必要があります。最速。

ただし、Boost asioのようなものを使用できる場合は、非同期の性質により、知覚される速度が向上する可能性があります。ディスクに書き込んでいる間に、次の作業の読み取りを続行できます。

編集:私はブーストasioを使用します。これにより、本質的に遅い操作(ファイルおよびネットワークIO)を待機しながら、リソースを最大限に活用できるようになります。

于 2012-11-07T22:28:42.600 に答える