日本の良さがわかる情報サイト


[iphone] スワップを有効にしてメモリ確保



iPhoneでもスワップ(SWAP、Windowsで言うと仮想メモリ)を使えることがわかったのでメモしておきます。

大きいソフトを起動するとメモリ不足で落ちたりすることがありましたが、SWAP(仮想メモリ)が使えれば理論上メモリが増えるため落ちることは避けられそうです。(実際効果ありました)


注意:
・何があっても自己責任で
・仮想メモリの仕様上、Flashディスクの読み書きが増えるかも
・PCと同じで、さすがにメモリを使いすぎると動作が重くなる


条件:
・脱獄してあること


手順:
・必要なファイルをダウンロード com.apple.dynamic_pager.plist
・iFunBox や SFTP等で /System/Library/LaunchDaemons にファイルをコピーする
・iPhone本体を再起動

この手順だけでメモリが(見かけ上)増えてアプリが落ちなくなります(笑


実験:
どれくらいアプリを同時起動できるか実験してみました

(起動直後)
左側の「VM: 626M」これがOSからみたメモリサイズでしょうか。
swap_before

(アプリ同時起動)
BackGrounderを使って、アプリを大量に同時起動してみました。
丸いバッジがついてるアプリが全部起動中のものです。
bg_app_01.jpeg

bg_app_02

29個のアプリを同時起動しました。
Map、Skype、Bylineは単体でも重いので普通は同時起動できません。


(結果)
「VM: 2786M」となっているので、アプリが使用したメモリ分として
合計で「2160M 」分もメモリが擬似的に増えました。
swap_after
体感速度として さすがにもっさり感はしますが、3GSなのでCPUが高速なのと、Flashディスクの読み書きが早いせいか、それなりに使えるレベルで動いてました。


※停止したい場合は、SSHから以下のコマンドを実行
launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist


追記:
iPhone 3G だとメモリは確保できるものの、体感的にかなり遅くなるらしい。
私の3GSだと今のところ特に問題なく使えてます。

3GS + OS3.1.2 で試してみましたが動きませんでした。OS3.0.x 限定だと思われます。

トラックバック・ピンバックはありません

ご自分のサイトからトラックバックを送ることができます。


コメントをどうぞ


メニュー

実験用システム

twitter

 

QR

qrcode