常用Profiler使用总结
- 这篇文章总结一下在游戏开发过程中常用的几种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
- 双击快照即可分析当前快照的渲染信息(注意如果是手机端程序要保持连接)