標準のC++/ C ++ 11(POSIX関数なし)でstd::ifstreamおよびstd::ofstreamの読み取りおよび書き込み速度を最適化する方法は?(1 <-いくつかの質問があるので、これらの数字は異なるポイントを識別します)
バッファの役割が正確にはわからないので、次のことを確認できますか?
- 読み取り用:ファイルの大部分がメモリにプリロードされます(したがって、バッファサイズがこの大部分のサイズを定義します)(2)
- 書き込み用:データはメモリに書き込まれ、バッファがいっぱいになると、メモリからファイルシステムに転送されます(3)
std::ifstreamとstd::ofstreamでバッファサイズを設定するにはどうすればよいですか?(4)
私が非常に大きなバイナリファイル(数10 GB)を処理し、ファイルシステムが大規模な読み取り/書き込みに最適であることが多いことを考えると、100 MBのようなバッファサイズを定義できますか?パフォーマンスが低下する場合、なぜですか?(5)
最後に、デフォルトのバッファは、ifstream / ofstreamがファイルに対して読み取り/書き込みを行っているデータの量を検出し、最大速度を提供するようにバッファサイズを調整するという意味で、「スマート」ですか?(6)