facebook twitter hatena line email

「Unity/負荷軽減/Profiler」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(遊び時間除去)
(処理時間の目安)
行36: 行36:
  
 
==処理時間の目安==
 
==処理時間の目安==
 +
公式ページにデバイスの温度と処理時間に関するデータが有る。
 +
 
*60 fps なら1フレーム辺りの処理時間を11msぐらいに
 
*60 fps なら1フレーム辺りの処理時間を11msぐらいに
 
*30 fps なら1フレーム辺りの処理時間を22msぐらいに
 
*30 fps なら1フレーム辺りの処理時間を22msぐらいに
行44: 行46:
 
公式:https://blog.unity.com/ja/games/optimize-your-mobile-game-performance-tips-on-profiling-memory-and-code-architecture-from
 
公式:https://blog.unity.com/ja/games/optimize-your-mobile-game-performance-tips-on-profiling-memory-and-code-architecture-from
 
<pre>
 
<pre>
使える時間予算の約 65% くらいに抑えることをお勧めします。一般的なフレーム予算は、30 fps なら約 22 ms / フレーム、60 fps なら約 11 ms / フレームとなります。
+
モバイル環境ではデバイスが過熱〜、フレーム間で冷却できるように、使える時間予算の約 65% くらいに抑えることをお勧めします。一般的なフレーム予算は、30 fps なら約 22 ms / フレーム、60 fps なら約 11 ms / フレームとなります。
 
</pre>
 
</pre>
  

2023年8月28日 (月) 11:08時点における版

Profiler確認

  1. unityメインメニュー/Window/Analysis/Profilerで確認
  2. playボタンを押すと動作する

使用状況詳細確認

  1. ProfilerでCPU Usageを選択
  2. 左中段にある、cmbボタンを選択し、Hierarchyを選択。
  3. Liveを選択
  4. GC Allocなど確認できる。

実行中に使用状況を確認する場合

  1. play実行
  2. ProfilerでCPU Usageを選択
  3. 左中段にある、cmbボタンを選択し、Hierarchyを選択。
  4. グラフのどこかをクリックして、選択
  5. PlayerLoopのところを展開していく。

参考: https://light11.hatenadiary.com/entry/2019/09/19/000006

Other項目について

アプリケーションが他のカテゴリに分類されないコードに費やす時間。これには、EditorLoop すべてや、エディターで再生モードをプロファイルするときのプロファイリングオーバーヘッドなどが含まれるとあるが、体感としては、Otherで調整されるので、Otherは遊びと捉えても良いのではと思ってます。

公式:https://docs.unity3d.com/ja/2022.3/Manual/ProfilerCPU.html

遊び時間除去

fpsを60,30,15にしたとき、体感としては、Otherで調整されるので、Otherは遊びと捉えることができる。 処理時間を計測するときは、Otherを除去してTime msを確認すると良い。

例:fpsを60固定にしたい場合

Application.targetFrameRate = 60;

処理時間について

Time msは、下層も含んだ処理時間で、Selfは下層を含まない処理時間。 https://docs.unity3d.com/ja/2018.4/Manual/ProfilerCPU.html

処理時間の目安

公式ページにデバイスの温度と処理時間に関するデータが有る。

  • 60 fps なら1フレーム辺りの処理時間を11msぐらいに
  • 30 fps なら1フレーム辺りの処理時間を22msぐらいに
  • 15 fps なら1フレーム辺りの処理時間を44msぐらいに
=1/fps*1000*0.65 の計算

公式:https://blog.unity.com/ja/games/optimize-your-mobile-game-performance-tips-on-profiling-memory-and-code-architecture-from

モバイル環境ではデバイスが過熱〜、フレーム間で冷却できるように、使える時間予算の約 65% くらいに抑えることをお勧めします。一般的なフレーム予算は、30 fps なら約 22 ms / フレーム、60 fps なら約 11 ms / フレームとなります。

PCで正しく解析する

GameWindowだけでなく、SceneWindowを表示したままにすると、負荷が上がるので、SceneWindowのタブは閉じるか、tab切り替えで表示しないようにする。

DynamicBatchingをonに

URPで、OpenGL ES 3.0のとき、useSRPBatcher をoffにして、DynamicBatchingをonに

using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
if (SystemInfo.graphicsDeviceVersion.Contains("OpenGL ES 3.0"))
{
     var pipeline = GraphicsSettings.currentRenderPipeline as UniversalRenderPipelineAsset;
     pipeline.useSRPBatcher = false;
     pipeline.supportsDynamicBatching = true;
}

参考:https://amagamina.jp/blog/srp-batcher/

SetPassCallsについて

  1. Analysis/左中段にあるRenderringを選択すると見れる
  • モバイルだと200以下が良い。