[iOS 8/Xcode 6] さらにToday Extension のメモリ容量制限について調べてみた

再び調べてみる

[iOS 8/Xcode 6] Today Extension のメモリ容量制限について調べてみた

に引き続き、Today Extension でのメモリ容量制限について、画像を用いて調べてみます。

前回は、Today Extension 上で、ピクセル数の違う複数の画像を切り替えながら、Today Extension が正常に動くかを調べました。

今回は、前回調べきれなかった場合のメモリ確保量と挙動を調べてみます。

同じファイルサイズ・異なるピクセル数

1000x1000pixel の画像と、3000x3000pixelの画像を用意しました。ファイルサイズは同じ153KBです。

メモリ確保量が、リソースファイル自体のファイルサイズで変わるのか、純粋にピクセル数で変わるのかがこれで見えてくるはずです。

iPhone5sを使用します。

1000x1000pixel

IMG_3806 IMG_3807

画像表示前と表示後の差は5,902,336バイト。

なるほど、こんなかんじです。

3000x3000pixel

IMG_3809 IMG_3810

おっと、表示できなくなりました。

メモリを確保しきれなくなったことが予想できます。

シミュレータで試してみます。

1000x1000pixel(シミュレータ)

iOS Simulator Screen Shot 2014.11.25 23.12.48

iOS Simulator Screen Shot 2014.11.25 23.12.52

画像表示前と表示後の差は5,820,416バイト。

実機とあまり変わらないですね。

3000x3000pixel(シミュレータ)

iOS Simulator Screen Shot 2014.11.25 23.13.51

iOS Simulator Screen Shot 2014.11.25 23.13.54

画像表示前と表示後の差は39,727,104バイト。

おっとこれは。なるほどです。

圧縮画像ファイルをメモリ上に展開しているわけですから、当然の結果ですね。

結果:リソースのファイルサイズが同じ場合、ピクセル数が増えるほどメモリ確保量が増える。