3

Windows 7 のタスク マネージャーの [パフォーマンス] タブに、キャッシュとして使用されている物理メモリのメガバイト数が表示されます。

ディスクベースのデータ (700 MB のファイル) をメインメモリに格納できないという前提で、プログラムのパフォーマンスを測定したいと考えています。実際には、十分なRAMがあります。ファイルを強制的にディスクから読み取ることはできますか?

レジスターで EnablePrefetcher と EnableSuperfetcher を無効にしようとしましたが、何も変わりませんでした。機能するハックは、使用可能なすべてのメモリを割り当てることです。FILE_FLAG_NO_BUFFERING と FILE_FLAG_OVERLAPPED を組み合わせると、望ましい結果が得られますか? 他のアイデアはありますか?

ところで:最初にアプリケーションを起動すると、その後の実行よりも大幅に遅くなるため、ファイルはキャッシュから読み取られたと結論付けます。利用可能なすべてのメモリを割り当てると、次の実行が再び遅くなります。また、アプリケーションを初めて実行したときに、タスク マネージャーでキャッシュが急速に増加していることがわかります。

トピック外:
皮肉なことに、メイン メモリにファイルを保存できないことを前提としたアルゴリズムを実装しています。ただし、メインメモリに保存する ことはできません... :)

4

0 に答える 0