|
|
行1: |
行1: |
− | ==Profiler確認==
| + | [[Unity/負荷軽減/Profiler/基本]] |
− | #unityメインメニュー/Window/Analysis/Profilerで確認
| + | |
− | #playボタンを押すと動作する
| + | |
− | | + | |
− | ==使用状況詳細確認==
| + | |
− | #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以下が良い。
| + | |