次のような状況の C/C++ 混合プロジェクトで作業しています。
ファイル内の非常に小さなチャンク (まれに大きなチャンクも) を 1 つずつ処理するには、反復処理が必要です。理想的には、それらを 1 回連続して読むだけです。この場合、必要なときにそれぞれを即座に読み取るのではなく、大きなチャンクをバッファーに読み取って後で消費する方が良い解決策になると思います。
問題は、キャッシュ サイズのバランスを取る方法です。利用できるよく知られたアルゴリズム/ライブラリはありますか?
更新: (タイトルを変更します)
皆さんの返信に感謝します。私たちのボックスでは、さまざまなレベルのキャッシュ メカニズムが機能していることを理解しています。しかし、私の場合はそれだけでは十分ではありません。
ここで重要なことを見逃したと思います。実際、私は既存のフレームワークに基づいてアプリケーションを構築していますが、エンジンに頻繁に読み取りを要求するとコストがかかりすぎます。(はい、エンジンは OS およびディスク レベルのキャッシュを利用していると思います。) そして、私がやろうとしているのは、アプリケーション レベルのプリフェッチ システムを構築することです。
考え?