facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(処理時間の目安)
 
(同じ利用者による、間の2版が非表示)
行1: 行1:
==Profiler確認==
+
[[Unity/負荷軽減/Profiler/基本]]
#unityメインメニュー/Window/Analysis/Profilerで確認
+
#playボタンを押すと動作する
+
  
==使用状況詳細確認==
+
[[Unity/負荷軽減/Profiler/実機]]
#ProfilerでCPU Usageを選択
+
#左中段にある、cmbボタンを選択し、Hierarchyを選択。
+
#Liveを選択
+
#GC Allocなど確認できる。
+
 
+
===実行中に使用状況を確認する場合===
+
#play実行
+
#ProfilerでCPU Usageを選択
+
#左中段にある、cmbボタンを選択し、Hierarchyを選択。
+
#グラフのどこかをクリックして、選択
+
#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
+
<pre>
+
モバイル環境ではデバイスが過熱〜、フレーム間で冷却できるように、使える時間予算の約 65% くらいに抑えることをお勧めします。一般的なフレーム予算は、30 fps なら約 22 ms / フレーム、60 fps なら約 11 ms / フレームとなります。
+
</pre>
+
 
+
==PCで正しく解析する==
+
GameWindowだけでなく、SceneWindowを表示したままにすると、負荷が上がるので、SceneWindowのタブは閉じるか、tab切り替えで表示しないようにする。
+
 
+
==DynamicBatchingをonに==
+
URPで、OpenGL ES 3.0のとき、useSRPBatcher をoffにして、DynamicBatchingをonに
+
<pre>
+
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;
+
}
+
</pre>
+
参考:https://amagamina.jp/blog/srp-batcher/
+
 
+
==SetPassCallsについて==
+
#Analysis/左中段にあるRenderringを選択すると見れる
+
*モバイルだと200以下が良い。
+

2023年11月19日 (日) 06:23時点における最新版

Unity/負荷軽減/Profiler/基本

Unity/負荷軽減/Profiler/実機