私のC++アプリには、ディレクトリ内のファイルのリストを表示するために使用されるテーブルウィジェットがあります。一度に最大20個のファイルを表示するのに十分な画面領域があります。ビューポートにラップされているため、ユーザーは上下にスクロールしてリスト内の他のファイルに移動できます。
リスト内の各ファイルには、バックグラウンドスレッドにキャッシュされる任意のサイズのメタデータが含まれています。メタデータが豊富なファイルを多数含むディレクトリにすべてのファイルをキャッシュしようとすると、ヒープ上の使用可能なメモリがすぐにいっぱいになり、深刻な結果を招きます。
もちろん、すべてのファイルを一度にキャッシュする必要はありません。見えるものだけ。また、ビューポートの境界のすぐ上/下にメタデータを含むファイルがキャッシュされていれば、上下にスクロールしてもそれほど遅延が発生しないので便利です。
これは、ビューポート(Webブラウザー、テキスト/ 16進エディター)を含む多くのUIアプリケーションが解決しなければならない問題に関連していると思います。この問題の解決に役立つパターン、アルゴリズム、またはコンテナー(deque
頭に浮かぶ)はありますか?
ありがとう!