FlasCC : Box2D.swc, Box2D.swf : Android 上での動作パフォーマンスの比較
前回の記事の後に思いついた、補足的な検証となります。
前回の記事)
Android での FlasCC box2d(v2.2.1) と box2dFlash(v2.1a) の動作パフォーマンスの比較
http://www.dango-itimi.com/blog/archives/2012/001144.html
予想の一つとして「FlasCC で出力された swc を AIR で再コンパイルするのだから意味が無いのでは」と考えました。その後、それならば AIR で再コンパイルされないようにしてみるのはどうだろう、と思いつきました。
FlasCC/samples/Example_Box2D にて、swc(Box2D.swc) と同じ内容の swf ファイルを同時に出力し(Box2D.swf という名前にしました)、Android アプリからは その swf ファイルを外部読込で利用するようにします。外部読込扱いならば Box2D.swf の内容は多分書き換わることはありません。(違っていたらごめんなさい。)
検証結果
Box2D.swf を外部読込にした前回と同じサンプルアプリを制作し動作検証してみたところ、残念な事にパフォーマンスは下がりました。FPS は 1~2 ほど落ちてしまう感じです。Android nexus7 では FPS 35 前後を上下する形となりました。(前回のサンプルでは FPS36~38付近を上下)
FlasCC のリファレンスを見てみると、「最適化」といった項目があり、swf 出力パラメータ設定が誤っている可能性もありますが、取り敢えず調査はここまでという事で。また何か思いついたら再度調査したいと思います。