« 絵で見るThread | メイン | Threadはええぞ〜 »

最適化してます?

最適化(と言ってもいろいろあるけど)って、ひたすらコードに制限を加えていくことになりますよね。ドラスティックに効果がある最適化は特に。

融通の利かないコードと引き換えに速度を得られるんですね。わかります。

コードの資産化をいつも心がけている自分としては、いままで最適化にはあまり興味がなかったんですけど、城戸さんの公演のビデオを見て少し考え方が変わりました。
曰く、「浮いた分のパフォーマンスを別の表現にまわせる」
たしかに。

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




ノード数1000



ノード数3000

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

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

CS4のVector使えばもうちょっと早くなるのかな。

トラックバック

このエントリーのトラックバックURL:
http://www.imajuk.com/mt4/mt-tb.cgi/45

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年4月11日 00:06に投稿されたエントリーのページです。

ひとつ前の投稿は「絵で見るThread」です。

次の投稿は「Threadはええぞ〜」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。