代码效率
【代码效率】页面主要反馈和分析项目运行过程中代码的 “CPU占用时间” 和 “堆内存分配” 情况。其中,这里所分析的代码既包含Unity引擎的自身模块代码,也包含您自己书写的逻辑脚本。通过该部分,您将快速掌握项目中逻辑代码的运行性能瓶颈,从而有的放矢地进行改进和优化。
CPU占用时间
函数汇总
该项主要显示项目运行过程中具有较高CPU占用的函数列表,包括函数的 “总CPU耗时”、“最大单次CPU占用” 和 “调用次数”。其中,“总CPU耗时” 表示函数在项目运行过程中的总CPU占用量,该项可以让您直接查看占据较大性能开销的函数;“最大单次CPU占用” 表示该函数在项目测试过程中的单次最大CPU耗时;“调用次数” 则表示该函数的CPU占用 >3ms 的调用次数。调用次数越高,说明该函数造成项目运行卡顿的概率越高,需要您更加关注。
具体函数分析
对于具有较高CPU占用的函数,您可以直接查看其具体的性能分析。目前,函数性能分析主要包括以下几项:
总体占用时间统计
该项主要分析当前函数所调用的子函数的性能开销。比如,图中 “Instantiate” 表示该函数在项目运行阶段的实例化操作累积 CPU 占用,“MainImp.RequestAsset” 表示该函数中的子函数(MainImp.RequestAsset)的累积 CPU 占用。“Self” 则表示其自身逻辑代码的累积CPU占用。
调用帧数分布
该项主要统计当前函数的CPU占用分布情况,统计区间主要分为以下五档:0~5ms,5~16ms,16~33ms,33~100ms 和 100ms以上。
具体CPU占用情况
该项主要显示函数在项目运行过程中的实际CPU占用情况。您可以通过与图表进行交互来详细查看该函数在任一时刻的CPU占用时间、所处场景以及对应的运行截图等。这些信息可以帮助您快速定位函数的性能瓶颈和潜在的问题根源。
堆内存分配
函数汇总
该项主要展示项目运行过程中具有较高堆内存分配的函数列表,主要显示函数的 “总堆内存分配”,“调用帧数” 和 “平均每次调用分配量”。其中,“总堆内存分配” 表示函数在项目运行过程中的总累积堆内存分配量;“平均每次调用分配量” 表示函数在项目运行过程中平均每帧的堆内存分配量;“调用帧数” 则表示项目运行过程中,该函数被调用的帧数统计。
具体函数分析
对于累积堆内存分配较高的函数,您可以直接查看其具体的堆内存分配情况。目前,函数的堆内存分析主要包括以下几项:
总体占用时间统计
该项主要分析当前函数中调用子函数的堆内存分配情况。比如,图中 “Instantiate” 表示该函数在项目运行时,实例化操作所带来的堆内存分配,“LogStringToConsole” 表示该函数中 Log 输出时的累积堆内存分配情况,“Self” 则表示其自身逻辑代码的累积堆内存分配。
调用帧数分布
该项主要分析当前函数堆内存分配的分布情况,统计区间主要分为以下四档:1KB以下,1~10KB,10~100KB 和 100KB以上。
具体堆内存分配情况
该项主要显示函数在项目运行过程中的具体堆内存分配情况。您可以通过与图表进行交互来详细查看该函数在某一时刻的堆内存分配量、所处场景以及对应的运行截图等。这些信息可以帮助您快速定位函数的性能瓶颈和潜在的问题根源。