Dumpsys GFXINFO 报告中的"Total frames"和"Janky frames"



我正在使用dumpsys gfxinfo命令计算我的应用程序性能。在我的应用程序代码中对性能改进进行更改后,我观察到帧总数和 Janky 帧数急剧减少。

">

总帧数"计数和"简帧数"计数的减少意味着什么?它是性能的良好指标吗?

附加的性能报告。

性能改进后

################################
Total frames rendered: 1542
Janky frames: 584 (37.87%)
90th percentile: 81ms
95th percentile: 93ms
99th percentile: 129ms
Number Missed Vsync: 268
Number High input latency: 61
Number Slow UI thread: 471
Number Slow bitmap uploads: 15
Number Slow issue draw commands: 511
Total ViewRootImpl: 1
Total Views:        434
Total DisplayList:  505.57 kB
####################################

性能改进之前

###############################
Total frames rendered: 5185
Janky frames: 3229 (62.28%)
90th percentile: 101ms
95th percentile: 109ms
99th percentile: 121ms
Number Missed Vsync: 2487
Number High input latency: 65
Number Slow UI thread: 2088
Number Slow bitmap uploads: 75
Number Slow issue draw commands: 2967
Total ViewRootImpl: 1
Total Views:        435
Total DisplayList:  506.74 kB
######################################

"总帧数" :为渲染而创建的帧数。 "抖动帧数":丢帧数。 "渲染的实际帧数":总帧数 - 简帧数。

尽管总帧数的增加和简帧数的减少
是性能的良好指标,但这还不够。一秒钟内在屏幕上呈现的实际帧数是决定性能运行状况的计算。一秒钟内渲染的帧数越多,意味着性能越好。

在使用"dumpsys gfxinfo"之前,你可以使用"adb shell dumpsys gfxinfo reset"来重置系统中的帧度量数据。然后在您改进的屏幕上进行一些操作。然后使用 "dumpsys gfxinfo" 。

渲染的总帧数:从"重置"渲染到"dumpsys gfxinfo"的帧数。 抖乱帧数:是长度超过 16 毫秒的帧数,而不是丢弃的帧数。

Janky 帧速率是一个很好的数据,您可以在提高性能时进行比较。在您的情况下,您将卡顿帧速率从 62.28% 降低到 37.87%,这非常好。

adb shell dumpsys gfxinfo <PACKAGE_NAME>命令提供有关进程整个生命周期内帧呈现的聚合统计信息。

在解释输出时,应牢记两件事:

  • 在您提供的示例中,不清楚这两个测试执行了多长时间,因此对于任何解释都没有用。gfxinfo输出还提供时间信息uptimerealtimestats since。要计算总时间,需要计算stats since - realtimestats since - uptimerealtimeuptime很可能是相同的值(两者的区别是另一个话题(
  • 仅当有任何要渲染的内容时,渲染的总帧数才会增加。如果查询 gfxinfo 以获取静态用户界面并且没有交互或动画,则渲染的帧非常非常少。因此,仅当执行相同的测试(完全相同的 UI 交互或动画(时,这两个输出才具有可比性。

要回答您的问题:

"总帧数">

和"简帧数"计数的减少意味着什么?

总帧数的减少可能是交互减少或 gfxinfo 记录时间减少。 Janky 帧的减少基本相同,并且可以渲染更多帧而不会被删除。只有在两个示例中应用了相同的测试时,这种解释才有意义。

它是绩效的良好指标吗?

当(且仅当(用于比较两个不同实现(例如动画(的相同测试导致两个实现的优化版本减少时,卡顿帧的减少是一个很好的性能指标。

相关内容

  • 没有找到相关文章

最新更新