众所周知,QML 是一种解释型语言,任何解释语言的灵活性总是伴随着性能的潜在下降。Qt技术团队在Qt 5版本中实施了更改,尤其是在 Qt 6 中,让 QML 以接近原生的速度运行。
用户界面开发框架Qt 6.x入门级教程:创建基于Qt Widget的应用(四)" class="img-thumbnail">在即将发布的Qt?6.3中引入了全新的Qt Quick Compiler,新的Qt Quick Compiler将包含两个组件:QML Type Compiler 和 QML Script Compiler。QML 类型编译器将 QML 对象结构编译成 C++ 类,QML 脚本编译器将应用程序的 QML 文件中的函数和表达式编译成 C++ 代码。因为 JavaScript 的性质会设置一些限制,如果某些语句无法编译,将使用常规解释和缓存。随着时间的推移,可能需要对应用程序的代码进行一些更改才能获得最佳结果,新的QML 工具将帮助您检测这些。例如,新的 QML Lint 将告诉您代码的哪些部分导致回退到解释中,技术团队将在未来扩展和改进 QML 工具,以使它们成为 Qt Quick 中所有组件的最佳实践指南。您越是遵循这些工具报告的建议,就可以编译越多的 QML 代码,从而运行得更快。
Qt技术团队为商业客户提供了QML 脚本编译器的技术预览,它在随 Qt 6.2.1 发布的“Qt for Device Creation”包中可用,此技术预览将在“Qt for Device Creation”的 6.2.x 版本中继续。从 Qt 6.3 开始,Qt Quick Compiler 的基本组件也将集成到 QtDeclarative 模块中,这是将确保 Qt 社区中的所有用户创建更好更快的 QML 代码。
从Qt?6.3 开始,技术团队将另外为Qt 商业用户提供 Qt Quick Compiler Extensions,这将减少重构工作以提高编译覆盖率。Qt Quick Compiler Extensions 还计划为现有工具提供额外的工具或集成,旨在更好地了解代码的特定部分如何影响项目中应用程序的执行性能,以及需要对代码进行哪些更改来制作这些部分 编译。
Qt技术交流群:166830288??????欢迎一起进群讨论
?