web-dev-qa-db-ja.com

RAMが空いているのに、アプリに切り替えると最初はアプリが非常に遅いのはなぜですか?

Windows 7(64ビット)PCで、リソースを大量に消費するプログラムがいくつか実行されている場合、および他の5ダースのプログラムが実行されている場合、しばらく使用していないアプリに切り替えると、応答に時間がかかります。ハードドライブがたくさん動いているのが聞こえます。ページファイルからデータを取得していると思います。 Windowsタスクマネージャーでは、物理RAMの約75%を使用しており、残りはキャッシュと空きの間で約50/50に分割されていることが示されています。

RAMが利用可能ですが、データをRAMからディスク上にのみ移動しましたか?他のプログラムの応答性を高めるにはどうすればよいですか? RAM 4GBから8GBにすると、あるプログラムから別のプログラムに切り替えるときにこれが高速化されますか?

9
Curyous

Windowsは、スループットと遅延の間でトレードオフを行う必要があります。

アプリケーションをRAMに保持しておけば、長期間使用していなくてもスループットが低下します。使用されているがアイドル状態の物理RAMは、他のアプリケーションやシステムで使用できるRAMを減らします。

Windowsは、長期間アクセスされていないメモリをページアウトすることを決定します。これにより、より多くの物理RAMをディスクキャッシュとして使用できるようになり、アプリケーションのスループットが大幅に向上します。

トレードオフは、これらのアプリケーションが最終的にしばらくアクセスされていないメモリページにアクセスする必要がある場合、それらが常駐していない可能性があることです。この場合、アプリケーションはRAMに読み込まれるまでしばらく待つ必要があります。

Windowsは通常、これらのトレードオフを行うのに非常に優れた仕事をしているので、あまり調整することはお勧めしません。レイテンシーを改善することはできますが、スループットに大きなペナルティがあり、さらに悪いことに、いくつかのことがうまくいかない状態になる可能性があります。 (たとえば、ページングファイルを無効にすると、2か月後に大きな画像などを編集していることに気付く場合があります。メモリの割り当ては常に失敗するため、保存するのは単に不可能です。)

もちろん、いつでもRAMを追加できます。今はとてつもなく安いです。そしてそれは、Windowsがそもそもトレードオフをしなければならない可能性を低くします。

7
David Schwartz

Windowsは、プログラムをメモリからディスクにページングします。使用するアルゴリズムはわかりませんが、アプリケーションがアイドル状態であった時間の長さを調べても驚かないでしょう。

Windowsは、空き物理量を最大化しようとしますRAM便利なので、メモリを8GBまたは12GBにアップグレードすると、システムの応答性が向上します。特に、複数の「リソース」を実行している場合はそうです。空腹の」アプリケーション。

6
ChrisF

どのプログラムがこれほど多くのRAMを使用しているかをWindowsタスクマネージャで確認できます。

個人的な経験から、4GB以上のRAMを搭載したPCではスワップファイルは不要だと思います。それが問題の原因であるかどうかを確認するために、スワッピングを完全に無効にすることをお勧めします。

また、不要なディスクI/Oを大量に生成する傾向があるため、オフにすることを好むWindowsサービスがあります。Superfetch、ReadyBoost、Windows Search、Windows Defender、ボリュームシャドウコピー、分散リンクトラッキングです。

0
Mikhail Kupchik