最近、新しいグラフィックカードを購入しましたが、ゲームのパフォーマンスが向上することを期待していました。パフォーマンスが大幅に向上しましたが、グラフィックスのヒッチハイク(フレームの更新で2回目の長い一時停止が断続的に発生)に悩まされ、私は終わりがありませんでした。
欲求不満で、私は本当のプロのように問題に取り組みました-私は YouTubeビデオ を見て、いくつかの ランダムプログラム をダウンロードしました。プログラムのポイントは、Windows 10のメモリキャッシュをクリアしているようです 私の場合、16GBから約300MBにドロップします)。
これが機能する方法はないと思いました。確かに、重いグラフィック作業は専用のカードで行われ、大きなテクスチャはVRAMに保存されます。言うまでもなく、まだ20GBを超える空きメモリが残っているので、スペース/ページングの問題はないと思います。
驚いたことに、プログラムの実行は実際に機能しました。私のゲームは、途切れたりヒッチハイクしたりすることなく、希望のフレームレートで信じられないほどスムーズに実行されました。
私のメモリキャッシュをクリアすると(少なくともランダムプログラムが他にあまり効果がなかったといいのですが)、ゲームのパフォーマンスの問題が修正された理由を誰かが説明できますか?
プログラムを実行する前に:
---(
プログラムの実行後:
ゲームが実行されていません(まだプログラムを使用して以前にメモリがクリーンアップされました:
ゲームの実行:
スタンバイメモリの非常に良い説明は、Microsoftの記事にあります
私の物理的なRAMはどこに行ったのですか? 。
つまり、これは基本的にWindowsキャッシュであり、プロセスによって使用されたディスクブロックのコピーが保持されます。これらのプロセスを再起動すると、ディスクの読み取りを行わなくても必要なブロックをすばやく見つけることができます。
これらのブロックは、プログラムが空きメモリに存在するよりも多くのメモリを必要とするときにすぐに解放されるため、問題ではありません。
ゲームの落とし穴は、ゲームが使用可能な限り多くのメモリを割り当てたい場合、メモリ内に可能な限り多くのデータを保持するために、Windowsに空きメモリの量を要求することです。 Windowsは、空きメモリの量を返しますが、スタンバイメモリを除きます。
その後、ゲームは要求したよりも少ないメモリを割り当てます。報告された量よりも多くのメモリを要求した場合、これは問題なくスタンバイメモリから割り当てられます。問題は、ゲームが実際にどれだけ要求できたかを知らないことです。
プログラムEmptyStandby Listは、非常に単純なことを行います。すべてのメモリを要求し、何も読み込まずに解放します。このようにして、スタンバイメモリは事実上クリーンアップされ、すべてのメモリが空きとしてマークされ、ゲームで使用できるようになります。