CPU Usage
??????? ●?GC Alloc?-
記錄了游戲運行時代碼產(chǎn)生的堆內(nèi)存分配。這會導致ManagedHeap增大,加速GC的到來。我們要盡可能避免不必要的堆內(nèi)存分配,同時注意:1、檢測任何一次性內(nèi)存分配大于2KB的選項;2、檢測每幀都具有20B以上內(nèi)存分配的選項。
●?WaitForTargetFPS?- VSync功能所致,即顯示的是當前幀的CPU等待時間。
●??Overhead?-
表示Profiler總體時間,即所有單項的記錄時間總和。用于記錄尚不明確的時間消耗,以幫助進一步完善Profiler的統(tǒng)計。(一般出現(xiàn)在移動設備,鋸齒狀為Vsync所致)
●??Physics.Simulate?- 當前幀物理模擬的CPU占用量。
●??Camera.Render?- 相機渲染準備工作的CPU占用量。
●??RenderTexture.SetActive?-
設置RenderTexture操作。比對當前幀與前一幀的ColorSurface和DepthSurface,如果一致則不生成新的RT,否則生成新的RT,并設置與之對應的Viewport和空間轉(zhuǎn)換矩陣。
●??Monobehaviour.OnMouse_?- 用于檢測鼠標的輸入消息接收和反饋,主要包括
SendMouseEvents和DoSendMouseEvents。
●??HandleUtility.SetViewInfo?- 僅用于Editor中,作用是將GUI在Editor中的顯示看起來與發(fā)布版本上的顯示一致。
?●?GUI.Repaint?- GUI的重繪(盡可能避免使用Unity內(nèi)建GUI)。
●?Event.Internal_MakeMasterEventCurrent?- 負責GUI的消息傳送。
●??Cleanup Unused Cached Data?- 清空無用的緩存數(shù)據(jù),主要包括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中的內(nèi)容,即多線程執(zhí)行資源的AwakeFormLoad函數(shù)。
●??Loading.AwakeFormLoad?- 在資源被加載后調(diào)用,對每種資源進行與其對應的處理。
●??StackTraceUtility.PostprocessStacktrace() 和
StackTraceUtility.ExtractStackTrace()?- 一般是由Debug.Log或類似API造成,游戲發(fā)布后需將Debug
API進行屏蔽。
●??GC.Collect?- 系統(tǒng)啟動的垃圾回收操作。當代碼分配內(nèi)存過量或一定時間間隔后觸發(fā),與現(xiàn)有的Garbage size及剩余內(nèi)存使用粒度相關(guān)。
● ?GarbageCollectAssetsProfile?- 引擎在執(zhí)行UnloadUnusedAssets操作。
GPU Usage?
●??Device.Present?-
device.PresentFrame的耗時顯示,該選項出現(xiàn)在發(fā)布版本中。關(guān)于該參數(shù)有如下幾個常見問題:1、GPU的presentdevice確實非常耗時,一般出現(xiàn)在使用了非常復雜的Shader等;2、GPU運行是非??斓?,而由于Vsync的原因,使得它需要等待較長時間;3、同樣是Vsync的原因,若其他線程非常耗時,會導致該項等待時間很長,比如過量的AssetBundle加載時容易出現(xiàn)該問題。
●?Graphics.PresentAndSync?- GPU上的顯示和垂直同步耗時,該選項出現(xiàn)在發(fā)布版本中。
●?Mesh.DrawVBO?- GPU中關(guān)于Mesh的Vertex Buffer Object的渲染耗時。
●??Shader.Parse?-?資源加入后引擎對Shader的解析過程。
●??Shader.CreateGPUProgram?- 根據(jù)當前設備支持的圖形庫信息來建立GPU工程。
Memory?
●?GameObjects in Scene?- 當前幀場景中的GameObject數(shù)量。
●?Total Objects in Scene?- 當前幀場景中的Object數(shù)量(除了GameObject外,還有Component等)。
●??Total Object Count?- Object數(shù)量 + Asset數(shù)量。
●??Scene Memory?- 記錄當前幀場景中各方面的內(nèi)存占用情況,包括GameObject、所有資源、各種組件及GameManager等。
更多unity2018的功能介紹請到paws3d爪爪學院查找。
熱門工具 換一換