トップページ > FLASH > 2011年08月27日 > 9rMvjLum

書き込み順位&時間帯一覧

7 位/101 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000001010000000000002



使用した名前一覧書き込んだスレッド一覧
Now_loading...774KB
Adobe AIR 総合

書き込みレス一覧

Adobe AIR 総合
370 :Now_loading...774KB[]:2011/08/27(土) 09:25:57.46 ID:9rMvjLum
AIR for Androidでのアプリの高速化について質問でつ
スマートフォンでの動作がとにかく遅くて困ってます 高速化について以下以外に方法があったらご教授よろでつ

・メソッドのインライン化 ※重要
  1〜4,5行の短い処理はメソッドにせずすべてインラインとして書く
  Math.min Math.maxは使わず通常の条件演算子を使う(ifもしくは三項演算子)

・クラスのインスタンス化は最小限にする
  インスタンス化するといちいち探しに行くので遅い クラスメソッドはstatic化して直接実行させる
  クラス内ではprivateを多用する メンバ変数も極力減らしローカル変数でやりくりする
  インスタンス自体をforで回さない 一旦ローカルで受けてから(.length取得等)回す
  メンバ変数の参照を切る場合はnullしない nullだとGC対象になり遅延の原因になるので可能な限り使いまわす
  
・その他
  単純な条件分岐はifではなくswitch(※毎フレーム行う処理では効果有り)
  定数はvarではなくconst指定にする
  ArrayではなくVectorを使う

AIR for Android専用スレ立てた方がいいのかな
Adobe AIR 総合
372 :Now_loading...774KB[sage]:2011/08/27(土) 11:57:05.15 ID:9rMvjLum
おお 良いところを紹介してくれてどうもでつ! 
ローカル変数を1行にまとめるだけで違うとかw 目からうろこです

実は小〜中規模くらいのゲームで ボタンクリックでポンポンと画面を切り替える場面がありまして…
ステージ上のインスタンスのターゲットを格納する専用クラスを作り 画面を切り替える毎にそのクラスの
メンバ変数(public)の参照を切ってました(画面毎にインスタンスが違うので)
PC上では問題無いんですがスマフォではなんと切り替える毎に 0.5 〜 1秒も 止まりやがるんですw

ターゲット用のメンバ変数がけっこうな数なのでしょうがないと言えばしょうがないんですが…
ターゲット格納専用クラスは廃止して参照を切らないで使いまわしでやってみます
結果がかなり違ったらまた報告にきます

パブリッシュ時にメソッドのインライン化を自動的にしてくれればいいんですが
インタプリタ型言語だと無理なのかな ビット演算も本腰入れて覚えないとorz


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。