読者です 読者をやめる 読者になる 読者になる

AK2Sのプログラム日記

フリーランスプログラマのプログラムに関する日記です

UnityでのUpdate負荷テスト

はい、どうも~AK2Sです!

先日はGitHubうpしただけでギブアップしてしまいました(;´Д`)

とのことで、UnityでのUpdateの負荷の検証を行いましたので結果を!

 

1.MonoBehaviourインスタンス3万個同時にUpdateさせる

UpdateTest/Assets/Tester/Test01 at master · AK2S/UpdateTest · GitHubf:id:AK2S:20161017214742j:plain
2.MonoBehavioru1個に3万個のインスタンス参照を持たせ、Updateを一つにまとめる

UpdateTest/Assets/Tester/Test02 at master · AK2S/UpdateTest · GitHubf:id:AK2S:20161017214021j:plain

 

3.Task構造を作成し、Interfaceを介してMonoBehaviourを継承したクラスをUpdateさせる

UpdateTest/Assets/Tester/Test03 at master · AK2S/UpdateTest · GitHubf:id:AK2S:20161017214226j:plain

 

4.Task構造を作成し、Interfaceを介してC#のクラスからTransformの参照を持ちUpdateさせる

UpdateTest/Assets/Tester/Test04 at master · AK2S/UpdateTest · GitHubf:id:AK2S:20161017214410j:plain

 

結果は処理が早い順で… 1 > 4 > 3 > 2

やはりUpdateを一つでまとめたものは処理早いですね(´・ω・`)

 

Updateを呼ばなくてもMonoBehaviourを継承してるだけで例外なく遅くなる…まぁでも使わないだけマシかな?

 

今回のテストではListではなくArrayを使用しています。

それは単純にListよりArrayを使用した方が配列へのアクセスが早いから!

 結構これは当たり前の事だったりします。

 

でも使用用途的に可変か不変かでも実装方法は変わってくると思いますのでケースバイケース

個人的にゲームはCPU/GPUキツくなってくるときが必ずあると思うので、MonoBehaviourを継承しててもいいのでUpdateは一つにまとめるべきだと思う(´・ω・`)

っま、MonoBehaviour継承しないと結構取り回しがきついですけどねw

 

それでは負荷テストについてはここまで!

次回はUnityのWebviewについて書こうかと思います!

 

それでは良いプログラミングライフを!(∩´∀`)∩