2015年11月19日

AIRアプリのパフォーマンス

ニャンコスライダーのリジェクトはまだ未解決です。
現在、審査待ちの状況で、そこから全く動きがありません・・・。

まあ、気長に待ちますか。

さて、話題は変わって。

現在、私はAdobe AIRにてアプリを制作しています。
しかも、使用しているツールはFLASH CC。
FlashBuilder等、プログラマ向けのツールは全く使えません(汗)

ぶちゃっけ、作り易さ重視&過去の経験から選んだわけですが、正直、FLASHだし(笑)、Starlingライブラリ等を使えば高速で動くんだろうけど、そこまでガチガチにプログラマライクな開発環境で作るのもしんどいし・・・、みたいな(笑)。

なので、アプリのフレームレート設定も、これまでは30FPSで行っていました。

ですが、今製作中のアプリでは試しにとばかりに60FPSに設定してみたら、あらビックリ!!!
めちゃめちゃ滑らかに動くじゃないですか!?
※そりゃフレームレート上げたら、滑らかになりますよね。

すげ〜!!

ビットマップを拡大縮小回転しているし、アルファも普通に使っているし、結構やりたい放題やってるんですけどね・・・。

大昔、Directorというソフトを使ってCD-ROMソフトのオーサリングしていたときは10FPSでも重かったのに。
Director4.0からかなり高速化されて、15FPS位出てて泣いて喜んでいたのに(笑)。

そんな以前の感覚でいたので、超ビックリなわけですが、じゃあ、いったいどれ位出るんだろう?と疑問に思い、テストしてみました。

方法は、Statsという外部ライブラリを使いました。

まずはStatsの入手場所。
https://github.com/mrdoob/Hi-ReS-Stats

そして使い方は、自分のFlaファイルと同じ階層から\net\hires\debugとフォルダをつくり、そこにstats.asを設置。
あとは、以下のスクリプトを設定するだけ。

import net.hires.debug.Stats;
addChild(new Stats());

これだけで、FPS、1フレーム辺りの時間(ミリ秒)、使用メモリ、最大使用メモリを表示してくれます。

ただ、スマホで扱うには表示が小さいので、

32:protected const WIDTH : uint = 140;
33:protected const HEIGHT : uint = 200;
66:style.setStyle('xml', {fontSize:'18px', fontFamily:'_sans', leading:'-2px'});
74:text.height = 140;

にして、表示を大きくしてみました。
※グラフ表示は見ないので、弄りませんでした。

試しにiPhone6(OS8.4)で動かしてみたところ、ほぼ60FPS!!
たまに50FPS前半になるときがありますが、50FPSを切ることはありませんでした。

さたにiPhone5(OS9.1)でも試したところ、上記とほぼ同じレベル。

う〜ん・・・端末がわりと新しいというのもありますが、普通にFlashCC2015で作成して、レンダリングモードをGPUに設定しただけで、これだけ出るとはびっくりです。
※何度目のびっくりなんだ?(笑)

時間があればAndroidでも計測してみたいと思います。

そんな訳で、次回作も次々回作も鋭意製作中です。
お楽しみに!


posted by カモノハシ at 14:39| Comment(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: