CPU Usage ● GC Alloc - 記錄了游戲運行時代碼產生的堆記憶體分配。這會導致ManagedHeap增大,加速GC的到來。我們要儘可能避免不必要的堆記憶體分配,同時註意:1、檢測任何一次性記憶體分配大於2KB的選項;2、檢測每幀都具有20B以上記憶體分配的選項。 ● WaitForTar ...
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爪爪學院查找。