まず、ページファイルをSSDに配置しないでください。SSDはウェアレベリングについては改善されていますが、ページファイルは頻繁に書き込まれ、一般的な使用よりもはるかに速くSSDを劣化させます。
多くの人が理解していないのは、ウィンドウに空きメモリが実際にはないことです。バーストデマンドに備えて空いているMBがいくつかありますが、そうでない場合は、アクティブな使用中のアプリケーションメモリと合計メモリの差は、一般に「スタンバイ」メモリと呼ばれるものによって消費されます。
これらは、必要に応じてダンプできるメモリページです(スタンバイメモリは優れた大きなキャッシュです)。したがって、アプリケーションの観点からは使用可能ですが、決して使用されていません。通常、これらはディスクキャッシュまたはページファイルキャッシュとして機能します。
Windowsの目標は、使用パターンに基づいて、このスタンバイキャッシュで使用される可能性が最も高いデータを保持することです。工夫された例を使用するには、デスクトップのコンテンツをこのスタンバイメモリにキャッシュすることで、Windows Update(通常は週に1回実行するように構成)などのプログラムのプライベートメモリの相対値を比較します。
ほとんどの時間、Windows Updateはスリープ状態です。それはメモリを保持しており、ほとんどの場合、スケジュールが来るのを待っている間はまったく価値がありません。一方、デスクトップフォルダーの内容は、特にファイルを保存したい場合は、常に照会される場合があります。
この場合、Windowsが行うことは、Windows Updateに割り当てられたメモリをページアウトすることです(メモリが「満杯」ではない場合でも、RAMで利用可能なスペースを使用してデスクトップのコンテンツをキャッシュします。君は。
Windowsは、これらの決定を何千も行い、アクティブなアプリケーションのメモリ要求とバランスを取りながら、バックグラウンドサービスによって常に書き込まれている数百のファイルのディスクキャッシュを管理しています。しばらく間違えることがあり、しばらくバックグラウンドでスリープしているアプリケーションに切り替えると、データがメモリに戻されるのを待つ必要があります。しかし、あなたが考えなければならないのは、そのアプリケーションをメモリ内に完全に保持していた場合、ディスクの書き込みと読み取りが完了するのを待っている他のアプリケーションがいくつ停止しているのか、それとも強制的にページアウトするのですか?それまでに使用していたアプリケーションがあった場合はどうでしょうか?
アプリケーションは、スタートアップコード(一度使用してから不要)、シャットダウンコード(一度使用してから不要)、更新コードなど、めったに使用されないメモリページを頻繁に割り当てます。より重要な用途がある場合、これらすべてをメモリに保持するのは実用的ではないため、Windowsがアプリケーションの現在の操作に不要なコードのセクションを特定すると、それらのセクションをページファイルに喜んでページアウトします。技術的にはメモリに保持できます。
(実際、アプリケーションによっては、システムが実際よりも多くのメモリを割り当てることが多く、そのほとんどがページアウトすることを期待している場合があります。 Windowsがさまざまなアプリケーションに割り当てたメモリ量です。ページファイルは、それをカバーするのに十分な物理RAMがない場合でも、このメモリを保証するために使用されます。
質問の中で、使用可能なメモリと空きメモリを区別したことに気づきました。あなたが講義をし、すでに違いを知っていると感じた場合、私の謝罪。理想的には、空きメモリは常に0です。ただし、スタンバイメモリは解放可能なメモリですが、常に迅速に解放できるメモリとは限りません。1GBのファイルをディスクに書き込もうとすると、Windowsは可能であればメモリ内のディスクキャッシュに貼り付け、バックグラウンドでゆっくりとハードドライブに書き込みます。アプリケーションが50MBの追加メモリを要求する必要があるが、この巨大なディスクキャッシュがまだフラッシュアウトされているため使用可能なメモリがない場合、アプリケーションは使用可能になるまでハングします。小さなバッファを手元に置いておくことで、システムはユーザーの観点からの遅延を最小限に抑えてこの問題を解決できます。