启动计时器 QML 类型
一个用于启动性能分析的工具。更多信息...
导入语句 | import QtApplicationManager 2.0 |
属性
- automaticReporting : bool
- systemUpTime : int
- timeToFirstFrame : int
方法
- checkpoint(string name)
- createReport(string title)
详细说明
启动计时器是一个用于测量系统 UI 启动性能的类,同时也适用于应用管理器启动的应用程序。
使用检查点功能,您可以记录自可执行文件启动以来经过的时间。对于系统 UI,这是自进程分支以来经过的时间。对于非快速启动的应用程序也是这样。快速启动的应用程序会在应用启动之前预先分支一个进程。在这种情况下,计时器将重置为实际的应用程序启动时间。时间使用具有纳秒分辨率的单调时钟进行报告 - 更多信息请参见 QElapsedTimer。
注意:在 Linux 上,只能以 10ms 分辨率获取进程分支和首次检查点之间实际的时间。
为了激活启动计时测量,需要设置 $AM_STARTUP_TIMER
环境变量:如果设置为 1
,将在控制台打印启动性能分析。除 1
之外的内容将被解释为用于替换控制台的文件名。
激活后,此报告将始终打印系统 UI。如果应用管理器以多进程模式运行,还将在每个启动的 QML 应用程序上打印额外的报告。请注意,条形图宽度只能在报告中进行比较。
应用管理器和其 QML 启动器已会创建大量检查点,并在所有 C++ 端设置完成后自行调用 createReport。但是,您可以使用 QML API 添加任意检查点:StartupTimer 对象通过 QML 引擎中的 StartupTimer
根上下文属性访问。
以下是一个示例输出,在支持 ANSI 颜色的控制台上启动 Neptune
UI
== STARTUP TIMING REPORT: System UI == 0'110.001 entered main 0'110.015 after basic initialization 0'110.311 after sudo server fork 0'148.911 after application constructor 0'150.086 after command line parse 0'150.154 after logging setup 0'150.167 after startup-plugin load 0'151.714 after installer setup checks 0'151.847 after runtime registration 0'156.278 after application database loading 0'158.450 after ApplicationManager instantiation 0'158.477 after NotificationManager instantiation 0'158.534 after SystemMonitor instantiation 0'158.572 after quick-launcher setup 0'159.130 after ApplicationInstaller instantiation 0'159.192 after QML registrations 0'164.888 after QML engine instantiation 0'189.619 after D-Bus registrations 2'167.233 after loading main QML file 2'167.489 after WindowManager/QuickView instantiation 2'170.423 after window show 2'359.482 after first frame drawn
属性文档
automaticReporting : bool |
如果您想阻止应用管理器执行自动报告生成,可以将此属性设置为 false
。如果您在系统 UI 中使用某种形式的分阶段加载并希望在以后创建报告,这会很有用。
注意: 请注意,在主 QML 文件的加载操作完成之前,您需要将此属性设置为 false
:理想情况下在根元素 Component.onCompleted
处理程序中。
默认值为 true
。
另请参阅 createReport。
systemUpTime : int |
提供由底层 OS 提供的系统 运行时间,直到 StartupTimer 单例初始化,以毫秒为单位。
这有助于通过将系统UpTime 和 timeToFirstFrame 的值相加来计算从启动到第一个帧绘制的持续时间。
timeToFirstFrame : int |
提供从进程开始到 HMI 中第一个帧渲染的时间,以毫秒为单位。
注意: 第一次帧的渲染比仅创建 QML 根组件所需时间更长。从 Component.onCompleted
信号中访问此属性可能过早。
方法文档
checkpoint(string name) |
添加一个新的检查点,包括已过的时间和给定的 name。每个检查点对应于下一次调用 createReport 生成的输出中的单个项。
createReport(string title) |
输出由 checkpoint 函数报告的所有检查点的报告。在报告的页眉中附加 title。
输出报告后,所有报告的检查点将被清除。这意味着您可以多次调用此函数,只有新报告的检查点将被打印。
©2019 Luxoft Sweden AB。此处包括的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可 version 1.3 的条款许可的。Qt 及其标志是芬兰和/或其他国家的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。