FITC TOKYO の GrantSkinner先生のスライドを読みましょう。
FITC楽しかったですね!大満足のMuraiです。
Flashの神様たちが一同に集い、生のお話が聴ける貴重なイベントだったので、多くの方が足を運ばれたと思います。
そのFITCで、FlashIDEのビルトインコンポーネントまで作られているGrantSkinner先生の超絶スライド。即実践でつかえる高速化手法 Quick as a Flashがとてもというか、勉強にしかならないのでご紹介。
http://gskinner.com/talks/quick/
内容は、大体下記の様な感じです。(ごめんなさいかなり荒いです)
一般的な最適化の方法
- Player毎のスピードの差異、型の扱いの違い etc
- ベンチマークの方法や、環境の違いによるベンチマークの結果の違い etc
- 体感スピードと実行スピード etc
- 1フレーム間で何が行われているか、処理落ちの仕組み etc
コードレベルでの最適化手法
- 割り算よりかけ算が、ObjectよりPointが、参照を潜っていくよりも値への直アクセスの方が速い etc
- 評価式の最適化 、ObjectPool etc
- Array,Vector,hash,dictionaryなど、構造体毎のアクセス速度、同じデータ操作をした時のベンチマーク etc
- 初歩的なところから深いところまで etc
ビデオ、WebCamの最適化Tips
描画周りの高速化
- レンダリングコストの最適化
- sprite.z=0
- blitting手法
- filterまわり、alphaとvisible
- 深度や描画モード、アルファの結果を画像合成される部分を最適化
ガベージコレクション
- GC遅延というか、GCが溜まるに溜まって一気に解放されるから遅くなる時がある etc
っと、カッコいいトランジションのスライドであるだけでなく、内容もりだくさん。
このスライド自体がベンチマークテスターになっているので、お手元のマシン毎、同じマシンでもブラウザ毎で内容が変わり、データが変化します。(ほんとなにそれ、すご過ぎる。)
oprimization without benchmarking is pointless.
だそうなので、言っている事をばっちり表すスライドとなっています。かっこいい。
ということで、あなたのマシンの実測値で説明してくれる神スライドなので、一通り読んでみる価値しかない!
読んで見るときっと発見があると思います。