C
应用程序性能
可能存在多个方面可能会对应用程序性能产生积极或消极的影响。在下面的部分中,您将了解这些方面如何影响性能以及控制它们的方法。
选择帧缓冲区策略
Qt Quick Ultralite 支持单缓冲和双缓冲策略,提供了在内存使用和性能之间的选择。单缓冲策略使用较少的内存,但可能会导致性能开销,而双缓冲策略使用更多的内存,但提供更好的性能。
有关更多信息,请参阅帧缓冲区策略。
选择字库引擎
Qt Quick Ultralite 提供了两种字库引擎选项:Monotype Spark 和静态字库引擎。
Monotype 字库引擎
- 更好地支持使用广泛字符集的国际化应用程序。
- 更好地支持需要文本布局以确保正确显示的语言。
- 在性能和文本质量不受影响的情况下支持文本缩放。
静态字库引擎
- 更好地支持不使用复杂文本并具有较小内存占用的小型程序。
- 基于静态预计算数据操作,实现非常快速的查找操作。
- 在构建时处理字体,从而不产生运行时开销。
有关两种字库引擎的详细比较,请参阅功能比较表。
使用基准模式
您可以在应用程序中使用基准模式来测量应用程序运行时的某些关键性能指标。
在基准模式下,您可以收集以下指标
参数 | 描述 | |
---|---|---|
1 | 总帧数 | 记录间隔内的总帧数。 |
2 | 平均 FPS | 记录间隔期间测量的平均每秒帧数。 |
3 | 最小 FPS | 捕获的最小每秒帧数。 |
4 | 最大堆使用量 | 自应用程序启动以来记录的字节数最大堆使用量。 |
5 | 最大栈使用量 | 自应用程序启动以来记录的字节数最大栈使用量。 |
6 | 平均 CPU 负载 | 记录间隔期间的 CPU Load 百分比值平均数。 |
基准模式涉及在指定时间内运行应用程序,并在该时间间隔结束时显示结果。
基准模式使用QulPerf QML类型来开始和停止性能指标的记录。
有关更多信息,请参阅使用Qt Quick Ultralite Thermostat Demo和Qt Quick Ultralite Automotive Cluster Demo,它们使用QulPerf类型来收集指标。
使用缓存
您可以通过缓存图像和文本来提高应用程序的性能。
图像缓存
使用ImageFiles.MCU.resourceCachePolicy QmlProject属性来为图像资源选择缓存策略。
- 默认情况下,所有图像都在启动时从闪存加载到RAM。
- 使用MCU.Config.maxResourceCacheSize设置资源缓存大小。
- 将ImageFiles.MCU.resourceCachePolicy资源属性设置为
OnDemand
,对于单个图像资源或使用ImageFiles.MCU.resourceCachePolicy在MCU.Config节点中为所有图像。 - 通过将ImageFiles.MCU.resourceCachePolicy设置为
NoCaching
禁用缓存,以保持资源在闪存中。这可能会在渲染性能上带来一些潜在的成本。
注意:在将图像文件添加到应用程序之前,必须使用ImageFiles.files QmlProject属性设置源文件属性。
字体缓存预初始化
在您的应用程序中使用大量文本将显着影响其启动时间。在这种情况下,您可以通过在构建时填充字体缓存来提高启动时间。
注意:仅支持Monotype Spark字体引擎进行缓存预初始化。
有关更多信息,请参阅Cache priming。
文本缓存
通过为Qt Quick Ultralite应用程序启用文本缓存,您可以提高文本渲染性能。启用文本缓存时,每个文本元素的像素数据都会被缓存,从而减少了绘制引擎的调用次数。
有关文本缓存功能和如何启用它的详细信息,请参阅Text caching部分。
使用硬件层
在支持硬件层的MCU平台上,您可以通过使用多个帧缓冲区和将这些帧缓冲区组合在一起来显示最终图像来提高Qt Quick Ultralite应用程序的性能。使用硬件层可以减少内存占用和渲染时间。
有关硬件层使用的更多信息,请参阅Improving performance using hardware layers。
在某些Qt许可下可用。
了解更多信息。