Windowsよりも後で再利用されるファイルをよく知っている場合があります。 8GBのメモリがあり、I/Oバウンドアプリケーションで1時間ごとに同じ1GBのファイルを使用するとします(1時間かかります)。ファイルがキャッシュされている場合は2番目に終了し、キャッシュされていない場合は1分です。)次に、再利用されない他の16GBのデータを処理します。当然、頻繁に使用される1GBのファイルはキャッシュからプッシュされます。その1GBのファイルをメモリに保持するようにWindowsに指示できれば有益です。 (さらに良いことに、これらの16GBのデータをキャッシュしないようにWindowsに指示できれば素晴らしいのですが、これができるとは楽観的ではありません。)
ネットワーク共有内のファイルの場合、状況はさらに悪化します。Windowsは、空きメモリがある場合でも、キャッシュからファイルを削除します。ファイルをすぐに再利用した場合でも、ファイルはキャッシュに残ります。ただし、ファイルを閉じて30秒間待つと、キャッシュがなくなり、システムはリモートサーバーからファイルを再フェッチする必要があります。私は3Mbpsのネットワークリンクを使用していて、サイズが約10 MBのファイルを処理しているため、これは非常に目立ちます。
ファイルをキャッシュに保持する貧乏人の方法は、ファイルを読み続けることです。もっと良い方法はありますか?これを行うプログラムを知っていますか?
(これがLinuxで簡単に実行できる場合は、私にも知らせてください。)
2つのことが思い浮かびます。
これは、dllなどの特定のタイプで可能です。
Windowsは、一般的に使用される一連のdllをキャッシュします。これらは「既知のDLL」です。 dllファイルをキャッシュしておくには、そのセットの一部である必要があります。