使用 Superluminal 可以快速的查看到 c++ 層級 profiler 訊息,當然這些是 unity profiler 無法查看到的,下面先 attach unity 并且執行 f8 打包工具,執行 Superluminal analyze 后如下圖
Case1.執行打包
中間的 timeline 訊息可以排序,根據 timer 排序,下面展開就可以看到 cost 在 F8 framework,再從左側點 BuildAssetBundles, 右側會顯示出項目中對應的 function
接下來,在 timeline 中展開 worker,會出現火焰圖
最終呼叫到 Unity.dll!BuildAssetBundles
點選其中 BuildAssetBundles,下方會出現 call graph 層級,右邊則會展開 source/assembly call graph,在進行 low level profiling 上能夠幫到不少
Case2. 游戲執行時
來查找目前游戲的運行 performance cost 在哪,一樣的步驟然後找到最高的 Exclusive,點擊後,我們可以看到右側的 c# 負載比較高的在 RenderCombinedMesh.cs,這塊是在處理 spine outline 的功能,游戲執行時在 frame 中運行重建 mesh,所以性能消耗很大
從 Function time distribution 也可以看出,整體的負載在 vertices、uv、triangle,基本上就是 geometry 底層的固定消耗。
留言
張貼留言