回答:
OS Xは、ほとんどの最新のオペレーティングシステムと同様に、仮想メモリシステムを使用してメモリを管理します。これにより、オペレーティングシステムはコンピューターを無制限のメモリプールとして扱うことができます。これを実現するために、OSはRAMの未使用部分をswapfileとして知られるディスクストアにページングします。
もちろん、RAMは無制限ではないため、OS XはRAMを有線、アクティブ、非アクティブ、空きの4つのカテゴリにグループ化します。ワイヤードメモリはオペレーティングシステムに必要であり、メモリからページアウトすることはできません。アクティブメモリは、現在実行中のプログラムが使用するメモリです。非アクティブなメモリは、現在終了している(または長期間使用されていない)プログラムによって最近使用されました。空きメモリは、その名が示すとおり、使用されていないRAMです。
プログラムを起動すると、アクティブなメモリにロードされます。ただし、プログラムを終了しても、RAMからは削除されません。むしろ、非アクティブなメモリに衝突します。これが、プログラムを再起動する方が速い場合が多い理由です-まだRAMにあります(Firefoxのような大きなプログラムでこれを試してください)。
すべてのメモリが使用されると(空きメモリは0)、OSは非アクティブなメモリをスワップファイルに書き込み、アクティブなメモリにより多くのスペースを確保します。
プログラムがスワップファイルにページアウトされ、それを再起動すると、スワップファイルからアクティブなメモリにプルされます。
つまり、空きメモリが少なくても気にする必要はありません。実際には、あなたはそれを低くしたいです-空きメモリは無駄なメモリです(OSは何のためにもそれを使用していないので)。
コンピューターが使用しているメモリの量を調べるとき、実際には、主にSwap usedに注目します。これは、仮想メモリスワップファイルのサイズを示し、Page insは、OSがスワップファイルからメモリをプルする頻度を示します。アクティブなメモリに。
これは問題ではない可能性が高く、実際にコンピューターの速度を上げる可能性があります。
すべての(ほとんどの?)オペレーティングシステムは、最近アクセスしたファイルをメモリに保存するディスクキャッシュを使用して、それらのファイルへの繰り返しアクセスを高速化できるようにします。OS Xのディスクキャッシュのサイズは可変であり、使用中の「非アクティブメモリ」として表示されます。
プログラムがさらにメモリを必要とする場合、OS Xはディスクキャッシュ(最も使用頻度の低いファイル)の一部をクリアして、プログラムの実行/拡張のためのスペースを確保します。
大量のコンパイルまたは写真の並べ替え(つまり、数千のファイルへの連続アクセス)を行うと、ディスクキャッシュが拡張され、非アクティブなメモリを大量に使用することになります。このディスクキャッシュがあれば、心配する必要はありません。
メモリ使用量が増加している(ただし、ページが非アクティブとしてマークされている)バックグラウンドプロセスまたはアプリケーションである場合は、アクティビティモニタで "Real Memory"の使用率が非常に高いプログラムを確認することで確認できます。そこに明らかに大きなものがない場合(つまり、合計が8GBに満たない場合)、ファイルキャッシュになります。
スワップの使用はほとんどありません。また、メモリを集中的に使用するプログラムを開くと、ディスクにスワップすることなく非アクティブなメモリの量が減少します。
(10.4または10.5にしばらくバグがあったため、このメモリが常に非常に効果的に解放されず、大きなディスクキャッシュがあるにもかかわらずスワッピングが発生すると考えられますが、私の経験では10.6で解決されたようです)。
「非アクティブ」メモリは、他のプログラムで使用できます。それは、再び必要になった場合に備えて、最近使用したプログラムまたはデータをキャッシュするだけです。異なるプログラムを起動したり、異なるデータが必要な場合、キャッシュされたメモリはクリアされ、必要に応じて新しいワークロードで使用できるようになります。
いずれにせよ、それが理論であり、私はそれが健全であると信じています。しかし、私は見つけました非アクティブなメモリが十分に迅速に解放されるとは思わなかったため、誰かが書いた「パージ」ユーティリティへのこの参照をました。
この件に関する公式文書については、これをお読みください(および「非アクティブ」を検索してください)。
OS X 10.5以降では、MAC OS Xに明らかなメモリ管理の問題があります。
やっと問題のあるシナリオを再現できたので、テストを実行して画面をビデオに記録しました。
MAC OS X Lionのパフォーマンスの問題-壊れたメモリ管理
Pictures /フォルダにある大量の画像ファイルに対して、基本的なUNIXのことであるtar + bzipコマンドを実行します。開始する直前に、「パージ」コマンドを実行して、非アクティブ/キャッシュされたプログラムデータを削除します。
ビデオで、空きメモリが非常に急速に減少し始め、非アクティブが常に増加していることがわかります。「bsdtar」コマンドを見ると、RAMの断片だけが必要なので、問題はこのプロセスにはありません。プログラムのメモリリークであると言うことはできません。なぜなら、問題は非アクティブなRAMではなく、アクティブ/有線にあるからです。
無料のメモリが100 MBを下回ると、Safari、iPhoto、MS Wordなどのいくつかのアプリを起動しました。動画を見ると、アプリを起動するのに数分かかることがあります。ロードに3〜5秒かかります。
Linux Centos 6ボックスで同じシナリオと同じコマンドを実行しますが、問題ありません!メモリ使用量は10〜20 MB程度で、キャッシュ/バッファに問題はありません。
Mac OS Xではメモリ管理が非常に壊れている必要があります!
この議論は、「空きメモリが少なくなるとコンピュータが高速に実行される」という文が正しい場合にのみ意味があります。デスクトップMacが奇妙に配線されていない限り、空きメモリ(監視対象)が少なくなり始めると、その時点で実行しているプログラムはすべて、それ自体で戻るまで何もできない点まで動き始めます。私の空きメモリの介入によって。私はiMac 2118(2006以降)を3 GBのRAMで使用できるようにしているので、できればそれを管理しようとしますが、これは非常にイライラします。何かご意見は?