Home > ActionScript 3.0 > 続 AS3.0 チューニング実験 add/removeChild と visible true/false ってどっちがいいの?

続 AS3.0 チューニング実験 add/removeChild と visible true/false ってどっちがいいの?

今日は、前回に引き続き、AS3のチューニングのお話です。

昨日の記事で、addChild removeChild を連発するより
visible の true / false を連発するほうが10倍くらい早いという結果を
ぶちまけたわけですが、やはりそこは疑いたくなるのが人のサガでして

「removeChildしたほうが、描画速度的にもCPU的にも嬉しいんちゃうん?」

という、疑問が沸いてくるわけです。
というわけで、今日は実際にそのへんを試してみました。

とりあえずサクサクっとサンプルを作りました。

構造的には
毎フレーム x++ する少々複雑なシェイプを
常に表示される用1個(黒)と、表示が切り替えられる用800個(赤)を生成。
それらを操作できるように
addChild、removeChild、visible、invisible ボタンを作った。

↓こんな感じに。
sample.jpg

それでは実験開始です。
参考までに実験環境は Windous XP
Core2Duo 1.60GHz 2GB RAM でやっとりますです。


■初期状態


sample_normal.jpg
黒いのが横に動いてます。
横に伸びてる赤いのは再描画領域です。
CPU使用率は平均18~25といったところでしょうか。

■addChild 実行


sample_addchild.jpg
縦一列に一気に800個並べました
再描画領域もすさまじい事に
動作も一気に重くなりました・・・
CPUも平均35~40いってます。ディアルコアなんで50でヒィヒィいう感じです。

■removeChild 実行


sample_removeChild.jpg
また軽い状態に戻りました
CPUも元に戻っています。

■addChild → invisible 実行


sample_invisible.jpg
お!?removeChildと描画速度CPU共にほとんど変わらない!
描画領域もちゃんと消えてます。



というわけで結論・・・
非常に単純な条件ですので、絶対ではないですが

よっぽどの事が無いかぎり、visible = false でも良いっぽい。

ああ、これで今夜はぐっすり眠れる。

ちなみに実際見て見たい方のためにサンプルを置いておきます。
負荷かけるものなので、3段階で用意しました。
自分のPCの性能と相談してご覧下さい。
※PCがフリーズしても一切の責任は負いませんのであしからず。

低負荷版 ( シェイプ 100個 )
中負荷版 ( シェイプ 500個 )
高負荷版 ( シェイプ 1000個 )

よーしチューニング、チューニングっと・・・

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://blog.flair4.jp/mt/mt-tb.cgi/25
Listed below are links to weblogs that reference
続 AS3.0 チューニング実験 add/removeChild と visible true/false ってどっちがいいの? from flair4 blog

Home > ActionScript 3.0 > 続 AS3.0 チューニング実験 add/removeChild と visible true/false ってどっちがいいの?

Search
Feeds

Return to page top