最適化してます?

最適化(と言ってもいろいろあるけど)って、ひたすらコードに制限を加えていくことになりますよね。ドラスティックに効果がある最適化は特に。
融通の利かないコードと引き換えに速度を得られるんですね。わかります。
コードの資産化をいつも心がけている自分としては、いままで最適化にはあまり興味がなかったんですけど、城戸さんの公演のビデオを見て少し考え方が変わりました。
曰く、「浮いた分のパフォーマンスを別の表現にまわせる」
たしかに。

というわけで、今回は最適化のプラクティスです。
テーマは魚っぽいノードの群れ。


ノード数1000


ノード数3000

僕の環境では、ノード数1000だと60/60fpsキープできるのですが、
ノード数を3000まで増やすとで32/60fpsどまりでした。
にわかオプティマイザーだとこんなもんですかね。くやしい。
まだまだ早くできる余地がある気がします。

施した最適化は以下のとおり
・オブジェクト複製による残像効果は使わない。
・ノードはaddChild()しないでBitmapDataに描画
・ループ内でオンデマンドでやる必要のない計算は全て前もってやっておく
・ループ内で極力newしない
・全てビットマップ化
・flockポイ動きだけどいんちき
・その他、ちまたにあふれている重箱の隅をつつくような最適化Tipsいろいろ
CS4のVector使えばもうちょっと早くなるのかな。

カテゴリー: ActionScript3, flash パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です