オブジェクト大量負荷実験


オブジェクトを大量に出し、どのあたりまでFPS維持できるのかを実験。
はじめに最適化オフで試してみたところ60個ほどの時点で60を下回る。120個の時点では30台をさ迷っている有様。200個まで出すと10を割ってしまった。オブジェクト自体は単純な立方体なので、描画ではなく内部処理のコストが異様に高いようだ。
想像した以上に悪い結果。次に最適化オンのビルドで試してみる。
100、200は言うに及ばず300を超えてもまったくFPSが落ちる気配は無い。同時に爆発エフェクトやら効果音やらを加えてもまったく問題なし。うーん、最適化でここまでパフォーマンスが変わるとは・・・関数のインライン化とかが大きいんだろうか。
コードサイズも、最適化無し924KB→最適化オン320KBと3倍近く違う。最適化オフはめっちゃ冗長なコードを吐いてるんだろうなあ。STLのコードなんかは思いっきりコンパイラの最適化をあてにしてるし。*1
一番処理時間を食っているのは衝突判定の部分だろう。なんも考えずに総当りでやってるから遅いのは当たり前。時間があったらocttreeとかで効率うpを図ろう。

*1:例えば、vectorに[]演算子でアクセスするだけでもインライン展開されないと凄い量の命令になる