Macとかの雑記帳

Macでメモリを解放するには、purgeよりduを使った方がいいのかも?

photo credit: fotoamater.com via photopin cc

環境によるのかもしれませんが、OS X 10.8.2 にアップデートしたくらいから、$ purge を唱えてもメモリを解放をしない症状を見かけるようになりました。

昔ながらの $ du を使う方法に切り替えたところ、数GBほど抱えてた非使用中のメモリを一気に解放してくれました。有名な方法なのでご存知の方も多いと思いますが改めて紹介です。

du でメモリを解放する

$ du は本来ディスクの使用量を調べるコマンドです。昔からOS Xには、これとアクセス権の修復を実行すると、メモリを解放するという癖があります。何故かは分かりません。

以下は $ du を25秒だけ実行するコマンドです。25 の部分で実行する時間を決めます。

$ du -sx / &> /dev/null & sleep 25 && kill $!

私はこれを使った自作アプリで実行してますが、コマンド単体で使う場合は ~/.bashrc でaliasを設定しとくと良いと思います。

alias remem='du -sx / &> /dev/null & sleep 25 && kill $!'

上の場合 $ remem と打つと件のコマンドを実行します。

私の環境で使ってきた感じだと、Leopard や Snow Leopard は5〜10秒。Lion や Mountain Lion は20〜25秒実行すると良いようです。

ちなみに、Leopard 以前で使う場合はちょっとコマンドが違います。

$ du -s / &> /dev/null & sleep 10 && kill $!

さいごに

1つ前の「MainMenu の使い方とMacのメンテナンス」を書いてて気になったのが、MainMenu Appではメモリ解放に$ duを使っている点です。

もしかしたらですが、$ purge だと解放しない場合があるから $ du が使われているのかもしれません。

スポンサード リンク