- 這篇文章總結一下在遊戲開發過程中常用的幾種Profiler的使用,偏美術側。
Unity Profiler
- 首先是Unity自帶的Profiler工具,使用方便,界面清晰,信息明確。主要看CPU、GPU、Rendering和Memory模塊的信息。
CPU
-
可以比較方便的查看各個函數的耗時、GC等。
-
還可以使用Profiler.BeginSample()和Profiler.EndSample()包裹住代碼塊,進行更爲精準的性能測試
GPU
- 可以看到不同部分的DrawCall、耗時等,但是在一些設備上不支持,也比較消耗性能,不需要的時候儘量不開啓
Rendering
- 可以看到場景的DrawCall、總頂點數、總三角面數,以及合批的情況,和一些渲染相關的圖片內存佔用
Memory
- 選擇左上角切換Detailed模式,再Take Sample即可獲得當前幀的內存具體細節。Editor下對於內存的profile不夠精準,推薦連接真機進行測試。
連接真機
- 點擊Editor按鈕,下拉菜單裏可以選擇當前電腦usb連接的手機
- 或者在Enter IP裏輸入手機的IP地址,即可連接上真機進行測試。
- 注意,需要打包時勾選Autoconnect Profiler,否則有可能連接不上
Hdg Remote Debug
- 可以連接構建後的包進行動態調試的插件
連接真機
-
首先在場景裏放上RemoteDebugServer,然後打包
-
在手機上打開遊戲包,然後在Remote Debug界面左上角輸入手機IP,進行連接,即可動態調試手機包裏當前場景裏的物體了
新增可控物體
- 默認的可控物體只有當前場景內的,不包括HideFlag爲DontDestroy的。
- 如果需要加入這些物體,可以在創建該物體時加一句Hdg.RemoteDebugServer.AddDontDestroyOnLoadObject(object)即可(object即爲需要加入的物體)。
GPA
- intel的Graphics Performance Analyzers,可以測試DirectX的應用程序的圖形數據
下載地址 https://software.intel.com/en-us/gpa
Launch Application
-
在模擬器上安裝apk遊戲包,如果該遊戲有桌面版,可以直接安裝桌面版更爲便捷。
-
打開Graphics Monitor,開啓自動加載應用程序
-
打開模擬器,會在左上角出現UI(開啓後儘快關閉自動加載應用程序,否則會對後續打開的其他應用程序進行profile佔用性能造成卡頓)
Capture Frame
- 在模擬器內使用快捷鍵截取快照,如果快捷鍵衝突,也可以使用Trigger進行截取快照
Frame Analyzer
-
打開Graphics Frame Analyzer,雙擊截圖,可以看到該幀的具體渲染信息
-
還可以對模型進行導出
RenderDoc
- 對於真機上的遊戲包,可以使用RenderDoc進行查看渲染信息。前一篇博文非常詳細地寫了如何使用RenderDoc,有興趣可以看那一篇,此處只做簡略介紹。
Launch Application
-
如果是PC端應用程序,直接在Path裏選擇該應用程序然後點擊Launch即可
-
如果是安卓端應用程序,需要先配置安卓環境,檢測adb連接順利,然後就可以在左下角進行連接(首次連接會在手機上安裝RenderDoc Server端)。左下角顯示Remote Server Ready後,在Path選擇需要profile的應用程序,再點擊Launch即可。
Capture Frame
- 在手機上應用程序運行到需要測試的時候,點擊Capture Frame Immediately即可截取快照,也可以選擇延時進行截取
Frame Analyzer
- 雙擊快照即可分析當前快照的渲染信息(注意如果是手機端程序要保持連接)