启动计时器 QML 类型
一个用于启动性能分析的工具。 更多...
导入语句 | import QtApplicationManager 2.0 |
属性
- automaticReporting : bool
- systemUpTime : int
- timeToFirstFrame : int
方法
- checkpoint(字符串 name)
- createReport(字符串 title)
详细描述
启动计时器是一个用于测量系统 UI 以及由应用程序管理器启动的应用程序的启动性能的类。
使用检查点功能,您可以记录自可执行文件启动以来经过的时间。对于系统 UI,这是进程克隆以来的时间。对于不是快速启动的应用程序也是如此。快速启动的应用程序连接到在应用程序启动之前已预先克隆的进程。在这种情况下,计时器将重置到实际的应用程序启动。时间使用具有纳秒分辨率的单调时钟报告 - 有关更多信息,请参阅 QElapsedTimer。
注意:在 Linux 上,进程克隆和第一个检查点之间的实际时间只能以 10ms 分辨率获得。
为了激活启动计时测量,需要设置环境变量 $AM_STARTUP_TIMER
:如果设置为 1
,则将在控制台上打印启动性能分析。除 1
之外的所有内容将被解释为用于代替控制台的文件名。
激活后,此报告将始终为系统 UI 打印。如果应用程序管理器在多进程模式下运行,还会为启动的每个 QML 应用程序打印附加报告。请注意,条形宽度只能在报告中进行比较。
应用程序管理器和它的 QML 启动程序将已经创建很多检查点,并在所有 C++ 方面设置完成后自己调用 createReport。但是,您可以使用 QML API 添加任意检查点:通过 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 PackageManager 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 单例,以毫秒为单位。
通过将系统启动时间(systemUpTime)和timeToFirstFrame的值相加,可以帮助计算从启动到绘制第一帧的时间。
timeToFirstFrame : int |
提供从进程启动到 HMI 首帧渲染的时间(毫秒)。
注意:首帧的渲染时间比只是创建 QML 根组件要长。从 Component.onCompleted
信号中访问该属性可能过早。
方法文档
checkpoint(string name) |
添加一个具有经过时间及给定name的新的检查点。每个检查点对应于通过createReport调用创建的输出中的单个条目。
createReport(string title) |
输出通过checkpoint函数报告的所有检查点的报告。报告的标题将被附加到报告的标题部分。
输出报告后,所有报告的检查点将被清除。这意味着您可以通过多次调用此函数,并且只有新报告的检查点将被打印。
© 2024 Qt 公司有限公司。此处包含的文档贡献由各自的拥有者拥有版权。此处提供的文档按自由软件基金会发布的GNU 自由文档许可证第 1.3 版的条款许可。Qt 及其相关标志是芬兰以及全球其他地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。