在Unity中Profiler查看CPU性能参数

1.垂直同步的解释:

一个图像是由一个二维的矩阵(矩阵内是像素点)组成的,水平同步是每一行进行读取

垂直同步是竖向的同步

Unity NaveMeshLink 垂直 unity 垂直同步_unity

当关闭垂直同步,可能就会产生上一帧还未显示完,下一帧的图像已经开始显示,出现图片撕裂,下图中下半部分红色部分是下一帧开始显示一半的图像,而上半部分依然是上一帧的画面

Unity NaveMeshLink 垂直 unity 垂直同步_折线图_02

2.垂直同步在Profile中的表现是:WaitForTargetFPS(当点击选中WaitForTargetFPS时淡黄色会呈现“高亮”状态,选中不同的函数会对应折线图中的颜色状态)

Unity NaveMeshLink 垂直 unity 垂直同步_折线图_03

cpu参数的说明:

GC分配的内存,(1)一次性不超过2KB。(2)每帧都具有20B以上的内存分配!,这两点要特别注意!!!!!

Time ms: 注意超过5ms的选项!!!

Unity NaveMeshLink 垂直 unity 垂直同步_帧率_04

VSync Count中的参数解释

0:Don’t Sync 不垂直同步 Application.targetFrameRate = -1

1:Every V Blank (fps = 60) Application.targetFrameRate = 60

2:Every Second V Blank (fps=30) Application.targetFrameRate = 30

当关闭垂直同步,但是设置Application.targetFrameRate = x的时候,垂直同步会默认开启!!

关于帧率:

帧率是一个我们谈论游戏性能的基本标准,但是当我们提升游戏性能时,更因该想到的是渲染一帧需要多少毫秒。帧率的相对改变在不同范围会有不同的变化。比如,从60到50FPS呈现出的是额外3.3毫秒的运行时间,但是从30到20FPS呈现出的是额外的16.6毫秒的运行时间。在这里,同样降低了10FPS,但是渲染一帧上时间的差别是很显著的。

渲染一帧所花费的时间: 我们还需要了解渲染一帧需要多少毫秒才能满足当前帧率。通过公式 1000/(想要达到的帧率)。通过这个公式可以得到,30FPS必须在33.3毫秒之内渲染完一帧,60FPS必须在16.6毫秒内渲染完一帧

3.自定义查看相关函数的性能:

步骤一

Unity NaveMeshLink 垂直 unity 垂直同步_cpu_05

步骤二,在profile中能够找到“sum_profile”的相关的性能参数

Unity NaveMeshLink 垂直 unity 垂直同步_运行时间_06

特殊函数说明:

Physic.Simulate 统计当前帧物理模拟cpu占用

CameraRender 统计相机渲染准备工作cpu占用

OverHead 记录尚不明确的时间消耗cpu占用4.垂直同步的实际应用:

垂直同步和帧率的设置,帧率配合垂直同步,能够看到帧率的明显变化!!

下图是KeyCode.A执行的帧率结果

Unity NaveMeshLink 垂直 unity 垂直同步_unity_07

下图是KeyCode.D执行的帧率结果

Unity NaveMeshLink 垂直 unity 垂直同步_cpu_08