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

RetroWeb ~iPhoneとAndroidでハイブリッドゲームアプリ開発~

AIR for iOS+AndroidでSmartPhone Game ハイブリッドアプリ開発

最近作ったアプリ
100億本の抜け毛 100億匹のモナー DQ3闘技場アプリ モナーペット(進化)

AIRアプリゲームで、ガベージコレクション多発して、コマ落ちしてた原因判明

AIR for Android AIR for iOS AIR Flash

しまむらくんアプリが、しばしばゲーム中にカクっとコマ落ちしてた原因が判明しました。

まずAdobe Scout CCという、プロファイリングソフトを導入。
これはゲーム中にどこが重くなってるか、グラフで分かるソフトです。
f:id:hisashi_vc:20140311010536j:plain
キャプチャ上部の青い三角が何個もあるグラフがメモリで、その絶壁部分がGC(ガベッジコレクション)です。この瞬間、アプリ内部でメモリの掃除がはじまる → 一瞬描画処理が止まる → 動作がカクる。これはひどい。多発し過ぎw

で、グラフを追ってわかった原因

「見えないところで、MovieClipのフレームアニメが止まってない。」

フレームが動いてると、現在のコマを描画するため、どんどんメモリが消費されるようです。そして限界を迎えると、カクっとGC発生してしまむらくんコマ落ち瞬間移動・・・!

ちなみに具体的には、多言語切り替えのフレームが、見えない部分で動いてたのが原因でした。1フレーム目に日本語、2フレーム目に英語を書いて切り替えてたので。。

これで明日か明後日にはなおる、、はず!