SysStats Liteの「測定できない領域」は、わかりにくいものですよね。

iPhoneのメモリが足りない? パワーリンゴ/ウェブリブログ

うーん、空きが非常に少ないのと、測定できない領域の多さが気になります。今までも使い込むとこのような円グラフになることはありましたが、今回は再起動からあまり時間が経っていません。

iPhoneのメモリが足りない? パワーリンゴ/ウェブリブログ

SysStats Lite測定できない領域が、今ひとつわかりにくいかもしれませんね。

以下に、アプリの中に入れてある説明文の抜粋を示します。

メモリ使用状況

メモリの使用状況を、数値と円グラフで表示します。表示されている数値は、host_statistics()関数のHOST_VM_INFOで 取得し た、vm_statistics構造体メンバの値をメガバイトに換算したものです。

空き free_count
固定中 wire_count
現在使用中 active_count
現在非使用中 inactive_count
確保中 wire_count + active_count + inactive_count
測定可能値合計 空き + 確保中
測定できない領域 物理メモリサイズと測定可能値合計の差分です。これも、使用中の領域として考える必要があります。

物理メモリサイズは、sysctl()関数のCTL_HW + HW_MEMSIZE(hw.memsize)で取得した値を使用しています。
実際の値は、常に、116MBのようです。

これでも、ちょっとプログラミング視点の説明なので、わかりにくいかもしれません。少し補足します。

本来、ここで取得される、空き、固定中、現在使用中、現在非使用中の合計が、物理メモリサイズと限りなく一致するはずですが、実際にはそうはなりません。
そこで発生する差分を「測定できない領域」として表現しています。それが実際にどのようなものであるのかについては、残念ながら判明していませんが、見た目からは、例えば、以下のような場合に、「測定できない領域」が増えるように思います。

  • Safariで多くのページが開かれている。
  • iPodで、カバーフローを使って、たくさんのCDジャケットの画像を表示する。
  • Mailで、HTML形式のメッセージをたくさん読む。

iPhoneを再起動してからの経過時間よりも、使い方による影響の方が大きいと思われます。
そして、それらのアプリケーションのプロセスを終了させると、「測定できない領域」が減って、空きが増えます。
個別にそれらのプロセスを終了させるのもいいですが、時間に余裕があるときには、iPhone自体を再起動するのが確実でしょう。

あと、iPhone 3G Sでは、RAM容量が倍増するので、メモリ不足が起こる可能性は、激減するのではと思います。(個人的には、これにかなり期待しています)

※ 「測定できない領域」については、特にApple社の資料等で説明されているものはありません。見た目の現象から推測している部分が多いので、表現が曖昧になってしまっていることを、ご理解いただければと思います。