非常に大きなテキスト ファイル (2 GB) を処理する必要があるため、1 行ずつ読み書きする必要があります。ofstream を使用して 2,300 万行を書き込むのは非常に遅いため、最初は大量の行のチャンクをメモリ バッファー (たとえば 256 MB または 512 MB) に書き込み、そのバッファーをファイルに書き込むプロセスを高速化しようとしました。 . これは機能しませんでした。パフォーマンスはほぼ同じです。ファイルの読み取りに同じ問題があります。I/O 操作が STL I/O システムによってバッファリングされることはわかっています。これは、ディスク スケジューラ ポリシー (私の場合は Linux の OS によって管理される) にも依存します。
パフォーマンスを向上させる方法について何か考えはありますか?
PS: プログラムがデータを処理している間にバックグラウンドの子プロセス (またはスレッド) を使用してデータ チャンクを読み書きすることを考えていましたが、これが価値があるかどうかはわかりません (主にサブプロセスの場合)。