ディフュージョンフィルタを作る(4) 負荷を調べる
「あんまり速度のこと考えずに作ったポストプロセルマテリアルだから、最適化しようかとも思ったんだけど、下手にいじくるとかえって遅くなることがある」
妹「速くなるようにしたのに遅くなるの?」
「最近は内部的なアレコレで高速化してるから、よかれと思ってやったことでその高速化を無効化しちゃうことがある。それに複雑にすると後で読みにくいから、多少速度が上がるぐらいなら放っておいた方がマシな場合も」
www.slideshare.net
「で、丁度UE4のプロファイルに関する資料が出てたから、これを見てちょっとやってみる」
妹「プロファイル?」
「捜査ドラマにでてくるプロファイリングみたいな。誰が遅いのか犯人探しをしようという」
「@キーを押して、入力欄を出して、stat unit と書いてEnterキー」
「昨日のディフュージョン用マテリアルを適用した時としてない時で調べてみた。数字はかかった時間だから、基本的に数字が多いほどよくない。でも誤差の範囲で数字が動くし、違いがよくわからないということがわかった」
妹「計り方が間違ってるのでは?」
「その可能性もあるので、今まで半径6ピクセル(実際には2倍した12ピクセル)の円でボカシてた処理を、半径30ピクセルに改造したものでも試してみた」
「操作していてもフレームレート落ちてるのわかるし、パソコンの発熱量も増えて普段動いてないファンが回りだしたし、明らかな高負荷状態。で、数字もGPUのところが増えてて、高負荷状態であることを裏付けてる」
妹「ということは、計り方はあってた?」
「高負荷にするとなんでDrawの値が逆に増えてるのかとか、気になるとこはあるんだけど。FPSが減って表示回数が少なくなったからそこの負担が軽くなったのかも。何にしても昨日のぐらいの大きさのボカシでは大して遅くなってなかったらしい。体感でも遅くはなってないし。となると最適化とかも別に要らなそう」
妹「もし遅いってなってたらどうしたの?」
「昨日いってたような工夫とか、後はボカシ半径を小さくしたりとか。その場合も数字を見て、効果がある改良かどうかを確かめながらやる必要がある」