在Profiler界面點擊左側CPU Usage,Profiler界面下方Hierarchy窗口會列出各個函數對當前CPU的耗時,從大到小排序。
然后分析,各個函數的耗時是否異常,分析有沒有可以優化的地方。
下面列舉常見函數對應的功能:
1 WaitForTargetFPS:
當前幀的CPU等待時間(當游戲鎖幀時常見)
2 Overhead:
Profiler總體時間-所有單項的記錄時間總和。用於記錄尚不明確的時間消耗,以幫助進一步完善Profiler的統計。
3 Physics.。。。
物理模擬占用的CPU時間
4 Camera.Render:
相機渲染准備工作的CPU占用量。我們知道,Draw Call過多影響最大的是CPU,調用Draw Call前會經過把數據加載到顯存,設置渲染狀態二步操作,這二步操作比渲染更耗時。
5 RenderTexture.SetActive:
設置RenderTexture操作。unity攝像機並不是每幀生成新的RenderTexture,因為每幀生成新的RenderTexture肯定很耗時。
Unity會比對當前攝像機當前幀與前一幀的顏色緩沖和深度緩沖,如果二個緩沖有變化會生成新的RenderTexture,否則不生成新的RenderTexture。
6 Monobehaviour.OnMouse_:
用於檢測鼠標的輸入消息接收和反饋。
7 Cleanup Unused Cached Data:
清空無用的緩存數據,主要包括RenderBuffer的垃圾回收和TextRendering的垃圾回收。
8 Application.LoadLevelAsync Integrate:
加載場景的CPU占用,通常如果此項時間長的話70%的可能是Texture過長導致。
9 UnloadScene:
卸載場景中的GameObjects、Component和GameManager,一般用在切換場景時。
10 GUI.Repaint:
GUI的重繪。(原生的OnGUI)