2012年1月29日日曜日

iPhoneのメモリーや、ディスクについて

 先日iMemoryGraphというメモリーの使用状況を測定するアプリを導入してみました。

iPhoneのwebアプリをつくっていると、たまに画面が白くなって、再読み込みが走ることがありますが、この原因が知りたかった。
以下の記事は4S(AU)での動作です。キャリアはあまり関係ないと思うけど。
iPhoneのスペックでは
メモリー505MB(うち、自由につかえるのは大地あ250MBくらい)
ディスク28.2GB
といったところみたいです。

その1:個人的な調査によると、メモリーがFreeメモリーが10MB程度まで落ちてしまってからページにアクセスすると、最終にアクセスしたページから順に再読み込みがかかるらしい。
ちょうど発生した時間のグラフはこんな感じ9:50くらいに実験したかな。

その2:僕が大好きなsencha-touchですが、メモリーを馬鹿食いするみたいです。以前つくったノートアプリを開くと50MBくらいくいやがった。こったアプリをつくるとさらにメモリーを食いそう。ちょっときついですね。ずっとsencha-touchでつくったアプリをつかい続けるなら、まぁリロードはそんなに走らないでしょうが、他のアプリと併用させるとたちまちアウトかも。

その3:XMLHttpRequestによるajaxの動作やページの読み込みデータ(画像等)はメモリーではなく、ディスクに書き込まれるっぽい。
javascriptの変数で保持してしまうとメモリーにきます。
no-cache等をサーバーで設定しておくようにすれば、次のデータを読み込んだときに過去のデータは削除されますが、設定しないない場合は、iPhoneがディスクにキャッシュする模様。

その4:localStorageでキャッシュした場合もディスクにたまるようですが、ディスクがいくらあろうが、数MBでアウトになるみたいです。

その5:mp3等のメディアデータはメモリー上にのっかって動作するらしい。(ファイルキャッシュしろよ。)

こんなところですね。この辺チューニングをうまくやってあげるとiPhoneの楽しいアプリ作成ライフが送れそうです。

0 件のコメント:

コメントを投稿