本页内容

生产级质量

如何在 UI 中实现制作级别的动态效果:

  • 预览 UI 以检查帧率(FPS)。
  • 对 UI 代码进行性能分析,找出导致运行缓慢、无响应和卡顿的原因。

帧率(FPS)

通常情况下,动画师会努力使渲染引擎保持稳定的每秒60帧(FPS)刷新率。60 FPS意味着每帧之间约有16毫秒的处理时间,其中包括将绘制基元上传至图形硬件所需的处理时间。

动画的每秒帧数(FPS)刷新率会在“Design ”模式下工具栏的“FPS ”字段中显示。

为了提高帧率,应用程序开发人员应:

  • 尽可能采用异步、事件驱动的编程方式。
  • 使用工作线程来执行大量处理任务。
  • 切勿手动循环事件循环。
  • 在阻塞函数中,每帧耗时切勿超过几毫秒,以避免帧丢失,否则会对用户体验产生负面影响。

有关在设备上预览 UI 的更多信息,请参阅《在设备上预览Qt Quick UI》。

分析 UI 代码

您可以使用 QML Profiler (已集成到Qt Creator 中)来查找 UI 中典型性能问题的根源。例如,您的 UI 可能运行缓慢、无响应或卡顿。通常,此类问题是由在过少的帧数内执行了过多的 JavaScript 代码引起的。所有 JavaScript 代码都必须先返回,GUI 线程才能继续执行;如果 GUI 线程尚未准备就绪,帧就会被延迟或丢弃。

一般而言,了解 UI 中时间的消耗情况,可让您专注于实际存在的问题区域,而非潜在的问题区域。

确定哪些绑定被执行得最频繁,或者应用程序在哪些函数上花费了最多时间,有助于您判断是需要优化问题区域,还是重新设计应用程序的一些实现细节以提升性能。如果不进行性能分析就尝试优化代码,很可能只会带来微乎其微的性能提升,而非显著的改进。

另请参阅 《如何设计Qt Quick 用户界面》、《 Qt Quick 用户界面设计《设计Qt Quick 用户界面》以及《QML应用程序性能分析》。

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.