Androidとスワップ

$ dd if=/dev/zero of=swapfile bs=1024 count=65536
$ mkswap swapfile
$ swapon swapfile

ZaurusのRAM 64MBでは、Androidはギリ足りないようで、例えばWebブラウザを起動すると、LauncherがLowmemorykillerに惨殺される。Webブラウザからホームに戻ると、Launcherが再起動されるため、数十秒待たされる。Launcherが起動されると、今度は裏に回ったWebブラウザが抹殺される。アプリ間の移動のたびに、Lowmemorykillerが大活躍。おかげで、アプリ切り替え毎に盛大に待たされる。


で、スワップ。思ったよりもいい方向に効果的。アプリ切り替えの待ち時間が激減。DalvikがDexファイルを再ロードするコストより、単純なスワップアウト/インのコストの方が、Android的には少ない。ということか。


Webブラウザで複数のウィンドウを開いてキャッシュを保持しておく仕組みも、スワップを使ってうまく働いてくれる。あれ?Android Zaurus、意外に実用に耐えるかな?かな?