Use Performance Panel
概述
PAGViewer上 的 Profiler 性能检测面板可以很直观地帮助设计师进行性能调优。预览贴纸时按下键盘上的 L 键即可呼出该面板,再次按下关闭面板。
面板上各种信息的含义
FrameRate : 播放帧率,每秒刷新画面的次数。
Duration : 动效时长, 单位为 s(秒)、m(分钟)、h(小时) 。
Graphics : 贴纸播放时占用的显存大小,单位同上。
Videos : 贴纸内采用视频格式的「 BMP 预合成」的数量。
TagLevel : 贴纸内包含的最高的 Tag 等级。
Width : 贴纸设计宽度。
Height : 贴纸设计高度。
Layers : 贴纸内包含的图层总数量。
Render : 当前一帧的渲染耗时,单位微秒。
Render(AVG) : 当前面板图像内的平均渲染耗时,单位微秒。
Render(MAX) : 当前面板图像内的最大渲染耗时,单位微秒。
Image : 当前一帧的解码耗时,单位微秒。
Image(AVG) : 当前面板图像内的平均解码耗时,单位微秒。
Image(MAX) : 当前面板图像内的最大解码耗时,单位微秒。
Prensent : 当前一帧的上屏耗时,单位微秒。
Prensent(AVG) : 当前面板图像内的上屏耗时,单位微秒。
Prensent(MAX) : 当前面板图像内的上屏耗时,单位微秒。
波形图每个柱代表某一帧 Render+Image+Prensent 的总耗时,可以根据颜色区分占比。
如何解读利用这些信息
TagLevel 用于确认一个贴纸的版本兼容性,即在某个版本的客户端是否能正常播放。客户端 SDK 的 PAGFile.MaxSupportedTagLevel() 要大于等于这个贴纸的最高 TagLevel 才能正常播放此贴纸,否则需要升级 SDK。
Graphics 显存大小通常跟图层的数量关联较大也跟贴纸实际绘制时缩放的大小有关,所有内容静止只有矩阵变化的图层都会被缓存成纹理,来提搞绘制效率,这个值过高会导致程序显存耗尽而崩溃。
Layers 图层数量主要影响的是显存大小,以及绘制时长。Layer 越多复杂度越高,绘制需要的计算量也越复杂。如果存在内容完全相同的图层,应该避免直接复制图层,而是将这些图层做成预合成,然后引用预合成的方式,这样图层数量会只计算一份。
Render 渲染耗时通常在是矢量导出的硬性指标,由于这些耗时在每台机器上具体数值都不相同,无法确定出固定值,但可以参考在 iMac 27 寸电脑上的耗时,建议控制在 100 微秒左右内。
Image 位图解码耗时通常在使用图片图层或者导出采用位图格式存储的 BMP 预合成时才会占用这个耗时。位图解码耗时基本可以认为只跟图片尺寸有关。