Unity - Profiler參數詳解


CPU Usage

​       ● GC Alloc - 記錄了游戲運行時代碼產生的堆內存分配。這會導致ManagedHeap增大,加速GC的到來。我們要盡可能避免不必要的堆內存分配,同時注意:1、檢測任何一次性內存分配大於2KB的選項;2、檢測每幀都具有20B以上內存分配的選項。

● WaitForTargetFPS - VSync功能所致,即顯示的是當前幀的CPU等待時間。

●​ Overhead - 表示Profiler總體時間,即所有單項的記錄時間總和。用於記錄尚不明確的時間消耗,以幫助進一步完善Profiler的統計。(一般出現在移動設備,鋸齒狀為Vsync所致)

●​ Physics.Simulate - 當前幀物理模擬的CPU占用量。

●​ Camera.Render - 相機渲染准備工作的CPU占用量。

●​ RenderTexture.SetActive - 設置RenderTexture操作。比對當前幀與前一幀的ColorSurface和DepthSurface,如果一致則不生成新的RT,否則生成新的RT,並設置與之對應的Viewport和空間轉換矩陣。

●​ Monobehaviour.OnMouse_ - 用於檢測鼠標的輸入消息接收和反饋,主要包括 SendMouseEvents和DoSendMouseEvents。

●​ HandleUtility.SetViewInfo - 僅用於Editor中,作用是將GUI在Editor中的顯示看起來與發布版本上的顯示一致。

​● GUI.Repaint - GUI的重繪(盡可能避免使用Unity內建GUI)。

● Event.Internal_MakeMasterEventCurrent - 負責GUI的消息傳送。

●​ Cleanup Unused Cached Data - 清空無用的緩存數據,主要包括RenderBuffer 的垃圾回收和TextRendering的垃圾回收。

●​ RenderTexture.GarbageCollectTemporary - 存在於RenderBuffer的垃圾回收中,清除臨時的FreeTexture。

●​ TextRendering.Cleanup - TextMesh的垃圾回收操作。

●​ Application.Integrate Assets in Background - 遍歷預加載的線程隊列並完成加載,同時完成紋理的加載、Substance的Update等。

●​ Application.LoadLevelAsync Integrate - 加載場景的CPU占用。

●​ UnloadScene - 卸載場景中的GameObjects、Component和GameManager,一般用在切換場景時。

●​ CollectGameObjects - 將場景中的GameObject和Component聚集到一個Array 中。

●​ Destroy - 刪除GameObject或Component的CPU占用。

●​ AssetBundle.LoadAsync Integrate - 多線程加載AwakeQueue中的內容,即多線程執行資源的AwakeFormLoad函數。

●​ Loading.AwakeFormLoad - 在資源被加載后調用,對每種資源進行與其對應的處理。

●​ StackTraceUtility.PostprocessStacktrace() 和 StackTraceUtility.ExtractStackTrace() - 一般是由Debug.Log或類似API造成,游戲發布后需將Debug API進行屏蔽。

●​ GC.Collect - 系統啟動的垃圾回收操作。當代碼分配內存過量或一定時間間隔后觸發,與現有的Garbage size及剩余內存使用粒度相關。

● ​GarbageCollectAssetsProfile - 引擎在執行UnloadUnusedAssets操作。

GPU Usage​

●​ Device.Present - device.PresentFrame的耗時顯示,該選項出現在發布版本中。關於該參數有如下幾個常見問題:1、GPU的presentdevice確實非常耗時,一般出現在使用了非常復雜的Shader等;2、GPU運行是非常快的,而由於Vsync的原因,使得它需要等待較長時間;3、同樣是Vsync的原因,若其他線程非常耗時,會導致該項等待時間很長,比如過量的AssetBundle加載時容易出現該問題。

● Graphics.PresentAndSync - GPU上的顯示和垂直同步耗時,該選項出現在發布版本中。

● Mesh.DrawVBO - GPU中關於Mesh的Vertex Buffer Object的渲染耗時。

●​ Shader.Parse - 資源加入后引擎對Shader的解析過程。

●​ Shader.CreateGPUProgram - 根據當前設備支持的圖形庫信息來建立GPU工程。

Memory​

● GameObjects in Scene - 當前幀場景中的GameObject數量。

● Total Objects in Scene - 當前幀場景中的Object數量(除了GameObject外,還有Component等)。

●​ Total Object Count - Object數量 + Asset數量。

●​ Scene Memory - 記錄當前幀場景中各方面的內存占用情況,包括GameObject、所有資源、各種組件及GameManager等。

更多unity2018的功能介紹請到paws3d爪爪學院查找。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM