Mac OS X(Leopard) で、swap しない(dynamic_pager off) ようにしてみた。

2ch地図昨日、なんとなく見ていた「2ちゃん地図」が秀逸だったので乗せておくとともに、最近、我が iMac で気になることがいくつか。
MAME OS X」のできばえがすばらしいので、魔界村にはまっていたりする昨今ですが。大容量な ROMを搭載しているゲームを実行していると、とんでもない勢いでスワップされる。また、Effect のはげしいスクリーンセーバーをしばらく稼働させた後に復帰すると、ほとんどすべてのアプリケーションがスワップされていて、復帰後 5分ほどもどかしい。はたまた、BitTorrent したまま放置すると、 そっちのキャッシュにくいとられて、他のアプリケーションのほとんどがスワップして復帰後(ry。
などなど、メモリが余っているにもかかわらず、ムダにスワップするケースが多いのです。しかも、スワップファイル作って退避しているので、ページングのように効率よくうまくできている気がしないのです。

そこでこんなもの見つけました。「Mac OS X Leopard – dynamic_pager を骨抜きに」うちは、たいしたアプリ動かしてるわけじゃないですし、2GB 積んでいれば、まぁまちがいなくメモリ不足になるとも思えないので、こちらにあるとおりやってみることに。

まずは、「開発環境(Xcode)をインストールする」も参考にして、開発環境をインストール。ちなみに、Mac OS X 10.5.2(iMac付属) では、Xcode は DISC2 に入ってました。

とまぁ、そんなこんなで、適当に Makefileを作成して、dynamic_pager の機能を抑制してみます。起動時に launchd で dynamic_pager は起動されるので、再起動して実際に試してみます。

なんということでしょう。意外な副産物を起動直後に味わうこととなりました。なんと、起動が速いですwww
login 後に、いくつかスタートアップで起動させているものがあるのですが、なんでか速いです。起動直後から swapばりばりに使っていた、ということなのかどうかは分かりませんが、いきなり効果大ですw

とりあえず、復帰後に悲しくなるので使っていなかったスクリーンセーバーなど、いろいろと試してみたいと思います。結果については、また後日。

[tmkm-amazon]4756151027[/tmkm-amazon]