C

内存优化

你可以通过使用以下优化功能或技术之一或多个来减少闪存和 RAM 脚印

启用资源压缩

PNG 压缩

通过设置 ImageFiles.MCU.resourceCompression,你可以使用 PNG 压缩存储图像。当需要时,图像将被解压缩到缓存中。这减少了二进制文件的大小,但增加了解压缩开销。有关在 Qt Quick Ultralite 应用程序中使用 PNG 压缩的更多信息,请参阅 ImageFiles.MCU.resourceCompression

RLE 压缩

不同于使用 ImageFiles.MCU.resourceCompression 的图像,具有 RGB888RLEXRGB8888RLEARGB888RLE 像素格式的 RLE 图像在运行时解码。这显着减少了内存使用量,但不支持转换(缩放、旋转、倾斜和透视)此类图像。

有关更多信息,请参阅 无损压缩图像格式

帧缓冲区大小

通过选择较低的颜色深度和/或单缓冲区,你可以优化帧缓冲区的大小。有关帧缓冲区大小要求的详细信息,请参阅 Framebuffer Requirements

如果你支持硬件层,您还可以通过使用硬件层来提高性能。有关更多信息,请参阅 Improving performance using hardware layers

字体质量

font.quality 属性允许更细粒度的优化,通过提供渲染低质量符号的提示。您可以将 QML 中的字体质量设置为 Font.QualityVeryLow,这将节省这些符号消耗的内存。有关更多信息,请参阅 MCU.Config.defaultFontQuality

从不从翻译中省略源语言字符串

在某些用例中,翻译的源语言字符串根本不会被渲染。尤其是当使用基于ID的翻译时,应用程序不应该显示源字符串。使用TranslationFiles.MCU.omitSourceLanguage QmlProject属性将源字符串从应用程序二进制文件中排除。

从字体文件中移除未使用的符号

当使用与字体映射文件一起的Monotype Spark字体引擎时,可以使用Qt Quick Ultralite附带的Monotype FontmapEditor实用程序来减小字体文件的大小。该实用程序允许您指定字体条目的unicode范围,并删除未使用的符号。当应用程序所需字符号集提前已知时,这很有用。特别是在CJK字体文件中,删除未使用的符号可以显著节省空间。

有关如何使用此功能的更多详细信息,请参阅FontmapEditor文档。

注意:此功能适用于FontmapEditor 3.1.1版本。

减少应用程序堆栈大小

根据分析,Qt for MCUs示例和演示不使用超过11 kB的堆栈内存。默认选择的堆栈大小是24 kB,以确保安全。通过基准测试应用程序并检查QulPerf::maxStackUsage的值,相应地减小堆栈大小可能会节省一些内存。

此优化仅适用于在链接器脚本中设置了固定堆栈大小的平台,或者在FreeRTOS上,Qt Quick Ultralite线程堆栈大小可以配置: 线程堆栈大小

根据某些Qt许可证可用。
了解更多。