ilyaのノート

いつかどこかでだれかのために。

OSXのメモリ管理について〔2010.12〕

Macintosh OSX 10.4 のメモリ管理について。
▽再起動せずOSXを使い続けていると、動作が遅くなりストレスがある。アプリケーションを終了しても開放されないインアクティブメモリが増えていくのが原因。


▼Release Memory2|わかばマークのMacの備忘録
http://wakabamac.blog95.fc2.com/blog-entry-179.html
「最初に注意書きとして、このスクリプト〔Release Memory2〕はスワップファイルを削除するものではありません。/スワップファイルが新たに作られる前に、このスクリプトを実行してメモリを解放するものです。スワップファイルが既にたくさん作られてしまった場合は、再起動しましょう。」
MacOSX の場合は、起動時に自動的に1個(64MB)のスワップファイル(ファイル名は swapfile0)が作られます。作られる場所は /private/var/vm/swapfile0 の不可視フォルダに作られます。/ 使って行くうちにメモリが足りなくなって来ると、スワップファイルがどんどん増えて行きます。」
再起動すれば、スワップファイルは削除されます。/再ログインでは、ちゃんと削除されません。」
「上記のように、増えると厄介なスワップファイルですが、「Release Memory2」は、スワップファイルを新たに作らせない為に、いっぱいになったメモリの領域を解放する AppleScript です。」 「アプリケーションをこまめに再起動しても、メモリの「インアクティブ(現在非使用中)」領域が少しずつ増え、メモリの「空き」領域は減って行きます。OS側で次の行動に備えてDATAをいろいろとキャッシュしているので「インアクティブ」領域が増えて行きます(間違ってたらすみません)。」
Release Memory2 がやってることは下記の通りです。/ ・Finderの再起動 (参考記事 : アプリケーションの強制終了)/ ・Dockの再起動 / ・アクセス権の修復 (参考記事 : Disk Utility/ アクセス権の修復)/ ・Dashboardのキャッシュの削除 / この4つのことを、AppleScriptを使って、まとめてやっています。/それぞれ、手動でやっても同じ効果はあると思います。/なぜ、アクセス権の修復でメモリを解放するのか、よく解りませんが・・・。」
「「Dashboardのキャッシュの削除」については、OS 10.3以下では意味が無いので、スクリプトエディタでこの行を削除してしまうなり、行の頭に「--」をつけてコメントアウトしておいたほうがいいでしょう。」 「作者のハルさんからコメント頂いたのですが、Dashboardのキャッシュの削除は、メモリ解放とはあまり関係ないようです。」
▼Freemem Monitor & Freemem KeeperわかばマークのMacの備忘録
http://wakabamac.blog95.fc2.com/blog-entry-770.html


スワップファイルをなくそう|うむらうす
http://umu.hustle.ne.jp/blog/archives/001117.html
OSXは結構メモリの管理(特に解放)がずさんなため、 アプリを立ち上げまくり、ブラウザでタブも開きまくっていると、 スワップファイルが5つ、サイズ2GB、とかなってしまう (これ自体はブラウザのメモリリークが原因っぽいが、それがうまく解放されないということか?)。 こうなると、ブラウザのタブ切り替えるのにも虹色カーソルグルグル、 アプリ切り替えるのもカーソルグルグル、と何をするにも動作がもっさりしてくる。 この状態はかなり腹立たしく、ストレスフルである。 ちなみに私の環境では、スワップファイル4つ目ぐらいから激しく遅くなる。 どうやら2つまでは無害らしいので、3つ目以上ができないようにがんばってみる。」
スワップファイルをなくそう2|うむらうす
http://umu.hustle.ne.jp/blog/archives/001141.html
スワップファイルをなくそう3|うむらうす
http://umu.hustle.ne.jp/blog/archives/001142.html
スワップファイルをなくそう4 - Release Memory2 (for Tiger)|うむらうす
http://umu.hustle.ne.jp/blog/archives/001169.html
「内容/ ・Release Memory をバージョンアップし、Release Memory2を作った/ ・「アクセス権の修復」を行うことでも、inactiveなメモリが解放されるので、 その方法を用いるAppleScript/ ・Script実行時間は格段に短くなった/ ・DashboardのCache削除機能も追加した/ ・対応OSはTigerまで」
「これはこれで便利に使っていたのだが、先日こちらのエントリーのコメント欄で、 thanksさんに新しいメモリ解放の方法を紹介していただいた。 (〔略〕)/ その方法は至って簡単で、起動ディスクのアクセス権を修復」すること。シンプルだ。 試しにアクセス権修復をやってみると、inactiveで解放されていないメモリ (リークしているメモリと思われる)が確かに解放される。 不思議だが、効果あり。」
▼Release Memory for Leopardを作ってみた|うむらうす
http://umu.hustle.ne.jp/blog/archives/001390.html


▼残り空きメモリ監視AppleScript「Freemem Monitor」作成|うむらうす
http://umu.hustle.ne.jp/blog/archives/001220.html
▼空きメモリ確保AppleScript「Freemem Keeper」作った|うむらうす
http://umu.hustle.ne.jp/blog/archives/001230.html
「空きメモリを周期的に監視し、空きが設定値以下になったらプロンプトを出して、 不使用のメモリを解放するスクリプトを走らせるというものだ。 これにより空きメモリ不足でスワップファイルが増殖して、 OSXの動作がもっさりするのを未然に防ぐのが狙いだ。/ すると「なんで自動的にメモリ解放スクリプトを走らせないの?」 という至極もっともな指摘をいただいたた。 そこで、空きメモリ監視スクリプト「Freemem Monitor」と不使用メモリ解放スクリプト「Release Memory」を一体化したスクリプトを作成した。 とりあえず名前は「Freemem Keeper」とする。」


AppleScript をいじってみる|わかばマークのMacの備忘録
http://wakabamac.blog95.fc2.com/blog-entry-184.html