質問: 空き物理ramがあるのになぜwindows 7がページファイルを使用するのですか? 私は8g ramとwindows 7 64ビットを使用しています。使用した後、windowsが低迷しているように感じます。ドライブはスラッシングです。リソースモニターとディスクアクティビティを見ると、ページファイル(c:\ pagefile.sys)の使用例がいくつかあります。物理メモリを確認したところ、2.3gの空きメモリと700mの空きメモリがありました。なぜwindowsは空きメモリを増やし、ページファイルを減らさないのですか?それはいくらかの量のフリーラムを残す必要がありますか、それはいくらでしょうか?それは物理的なramの割合ですか?私の計画は、メインドライブ用のramとssdを増やすことです。その間、私は遅いパフォーマンスに苦しんでいます。
回答: まず、ページファイルをssdに置かないでください。 ssdはウェアレベリングについては良くなっていますが、ページファイルは頻繁にに書き込まれ、一般的な使用よりもssdの劣化が早くなります。多くの人が理解していないことは、ウィンドウが本当に空きメモリを持っていないということです。バースト要求に備えて空き容量が確保されているmbはいくつかありますが、それ以外の場合は、アクティブな使用中のアプリケーションメモリと総メモリとの差は、一般に「スタンバイ」メモリと呼ばれるものによって消費されます。これらは、必要に応じてダンプできるメモリページです(スタンバイメモリは素晴らしい、大きなキャッシュです)。そのため、アプリケーションの観点から見ると利用可能ですが、決して使用されているわけではありません。通常、これらはディスクキャッシュまたはページファイルキャッシュとして機能します。windowsの目標は、使用パターンに基づいて、このスタンバイキャッシュで使用される可能性が最も高いデータを維持することです。考案された例を使用するには、デスクトップの内容をこのスタンバイメモリにキャッシュして、windows updateなどのプログラムのプライベートメモリ(通常は1週間に1回実行するように構成されている)の相対値を比較しましょう。ほとんどの場合、windows updateはスリープ状態にあります。それはメモリを保持していて、大部分はスケジュールが実行されるのを待っている間それを使っても全く価値のないことをしています。一方、デスクトップフォルダの内容は、特にファイルを保存したい場合には常に照会される可能性があります。この場合、windowsが行うことは、windows updateに割り当てられたメモリをページアウトすることです(メモリが「いっぱい」でなくても)、デスクトップの内容をキャッシュするためにramで利用可能なスペースを使用します。これにより、パフォーマンスが向上します。windowsは何千ものこれらの決定を下し、バックグラウンドサービスによって絶えず書き込まれている何百ものファイルのディスクキャッシュを管理しながら、これをアクティブなアプリケーションのメモリ要求とバランスさせようとしています。しばらくの間は間違ってしまうことがあります。バックグラウンドでしばらくスリープ状態になっているアプリケーションに切り替えると、データがページングされてメモリに戻るのを待つ必要があります。しかし、そのアプリケーションを完全にメモリ内に保持していた場合、ディスクの書き込みと読み取りが完了するのを待っているアプリケーションが他にいくつあるのか、それともページアウトを強制されるのでしょうか。その間に使用していたアプリケーションがそれらであったとしたらどうでしょうか。アプリケーションは、起動コード(1回使用した後に不要)、シャットダウンコード(1回使用した後に不要)、更新コードなど、使用頻度の低いメモリページを頻繁に割り当てます。もっと重要な用途があるときにこれらすべてをメモリに保持するのは現実的ではないので、windowsがアプリケーションの現在の操作に必要ではなかったコードのセクションを識別すると、たとえ技術的にはそれらをメモリに保持することができます。(そして実際には、アプリケーションによっては、システムが実際よりも多くのメモリを割り当てることが多く、ページアウトされることが予想されます。詳細なメモリの内訳を見ている場合は、「commit」または「commit」の請求windowsがさまざまなアプリケーションに割り当てるメモリ量は、それをカバーするのに十分な物理ramがなくても、pagefileを使用してこのメモリを保証します。私はちょうどあなたがあなたの質問で利用可能なメモリと空きメモリを区別したことに気づいた。あなたが講義を受けていてすでに違いを知っていたら私の謝罪。理想的には、空きメモリは常に0です。ただし、スタンバイメモリは解放できるメモリですが、すぐに解放できるメモリは常にありません。 1gbのファイルをディスクに書き込もうとすると、windowsは可能であればそれをメモリ内のディスクキャッシュに保存し、その後バックグラウンドでハードドライブにゆっくり書き出します。アプリケーションが50mbの追加メモリを要求する必要があるが、この巨大なディスクキャッシュがまだフラッシュされているために利用できない場合、アプリケーションは利用可能になるまでハングします。小さなバッファを用意しておくことで、システムはユーザーの立場からの遅れを最小にしてこの問題を解決することができます。 windowsがスタンバイキャッシュの一部を空にしたか、使用中のメモリを大量に解放しただけで、まだ新しいキャッシュデータがいっぱいになっていない場合は、通常よりも大きいバッファを使用することもあります。