性能优化在行业里永远是一个常谈的话题,该话题里的内容难以用准则来描述,而更多的是建议和规则。本文多数内容、观点和建议参考于Qt官方资料并结合自己的实际QML使用习惯总结而成。优化规则并不是“黄金规则”,更不是“金标准”。对于QML应用开发来说,将这些规则根据具体应用场景能合理运用即可。
本文内容主要涉及到:Text类型、Image类型、模型试图和视觉效果四个方面的一些优化规则和推荐实践。
计算文本的布局会是一个缓慢的操作。所以,在实际开发中尽可能优先考虑使用明文格式,而不是StyledText,这可以减少布局引擎的工作量。如果不能使用明文(例如:需要嵌入图像,或使用标记来指定具有特定格式(粗体、斜体等)的字符范围),那么才考虑使用StyledText。
应该只在文本可能是StyledText的情况下使用AutoText,因为这种模式会导致很高的解析成本。除此之外,还不应该使用RichText模式,因为StyledText几乎提供了其所有的特性。
在任何软件的用户界面中,图片都是重要组成部分。但是一般加载图片所需的时间、消耗的内存数量和使用方式,都会影响应用程序的性能,在本小结中,描述在实际qml应用开发中,在使用图片时关于性能的几条优化点。
图片通常非常大,所以最佳的做法是确保加载图片不会阻塞UI线程。将Image元素的asynchronous属性设置为true,用于允许从本地文件系统异步加载图片(注:远程图片总是异步加载的)。
注:当
asynchronous属性设置为true时,图片元素将在低优先级的工作线程中加载。
如果在应用程序中加载了一个大尺寸的图片,但是却在一个小尺寸的元素中显示它,因此我们应该设置图片的sourceSize属性为被呈现的元素的大