読者です 読者をやめる 読者になる 読者になる

webネタ

技術系ブログ。web系SE。1988。♂。@rhong_

FlashLite1.1 メモリ使用量の調査したよ

テスト内容

  • 1、画像の種類でメモリ使用量がどう変わるか。
  • 2、変数の定義数でメモリ使用量がどう変わるか。

対象環境

  • FlashLite1.1
  • ドキュメントサイズ w240 x h320
  • SH823 (softbank)

メモリ使用量の計測方法

_root.mem_use = fscommand2("GetTotalPlayerMemory") - fscommand2("GetFreePlayerMemory");

テスト実施

1、jpg, 透過png, 透過gifでどの程度メモリ消費に違いがあるか調査

クリックして1枚ずつ5枚の画像を表示し、そのつどメモリ消費量を取得した。

jpg
  • 1枚目 = 144KBメモリ消費した
  • 2枚目 = 116KB
  • 3枚目 = 116KB
  • 4枚目 = 116KB
  • 5枚目 = 116KB

swfファイルサイズ = 85.4KB

透過png
  • 1枚目 = 116KB
  • 2枚目 = 104KB
  • 3枚目 = 68KB
  • 4枚目 = 68KB
  • 5枚目 = 68KB

swfファイルサイズ = 87.4KB

透過gif
  • 1枚目 = 68KB
  • 2枚目 = 36KB
  • 3枚目 = 20KB
  • 4枚目 = 20KB
  • 5枚目 = 20KB

swfファイルサイズ = 23.6KB

まとめ

gifが一番ファイル容量もメモリ使用量も軽い。
gifパネー


2、変数10個定義, 11個, 12個, 100個, 200個, 300個, 400個, 500個した場合のメモリ消費量の違い
変数10個定義した場合

結果 : 141KB
swfファイルサイズ : 431B

変数11個定義した場合

結果 : 141KB
swfファイルサイズ : 451B

変数12個定義した場合

結果 : 141KB
swfファイルサイズ : 471B

変数100個定義した場合

結果 : 157KB
swfファイルサイズ : 2,233B (2KB)

変数200個定義した場合

結果 : 209KB
swfファイルサイズ : 4,433B (4KB)

変数300個定義した場合

結果 : 221KB
swfファイルサイズ : 6,633B (6KB)

変数400個定義した場合

結果 : 249KB
swfファイルサイズ : 8,833B (8KB)

変数500個定義した場合

結果 : 289KB
swfファイルサイズ : 11,033B (11KB)

まとめ

変数一つ追加するごとに
メモリ : +300B (100個追加したとき平均34KB増えるので、1/100として)
swfファイルサイズ : +20B


結果のまとめ

写真ならjpeg、それ以外はgifを使用し、できるだけpngは使用しない方向で開発しないと画像を多用する場合はメモリ消費が激しいので厳しい。変数は、フラグや1-9の数値などであれば工夫次第で一つの変数に入れれる。たとえば、val=(変数1の値)(変数2の値)(変数3の値)と考えれば、val=111と固定の数値ならsubstring()などで指定の位置から値を持ってくるだけで変数を定義しなくてよくなる。さらに変数の文字数も短くするとさらにメモリも軽量化できる。flashlite1.1でそれなりのものを作るならばかなりシビアに節約したコードを書かなければならなくなりそうだ。

P.S.
使用したflaやswfは言ってもらえれば差し上げます。UPするのがめんどうですた。。