立足中国创新 迎接工业4.0

EMBRACE THE NEW ERA OF INDUSTRY

Qt商业版 | 编译优化+导入设计+可视化剪裁解决嵌入式GUI性能低、开发效率低的难题!

来源: 日期:2021-07-07

软件性能是软件质量管理中非常重要的内容,GUI程序性能亦如此。同样,在Qt开发者社区,楼友们问小优问得最多的也是关于用Qt开源版做跨平台开发(包括嵌入式以及桌面端)的时候,如何提高GUI程序运行性能及其开发效率的问题。很多楼友、楼主分享了很多技巧,但大多局限于技巧层面。其实,要从根本上解决这些问题,还得从开源版和商业版的工具功能以及程序性能差异方面来解决。

下面小优就如何立竿见影优化嵌入式GUI程序性能以及提高开发效率的问题进行分享。

1、性能优化

一般谈到性能问题,首先是要考虑的是运行的硬件平台,或者能升级硬件来解决的话,就不需要考虑软件上的性能优化,毕竟软件性能优化需要消耗大量的时间和成本。尤其是嵌入式产品,因为受到价格竞争力的影响,性能优化是必修课。但有时候费了九牛二虎之力优化的软件,因为遇上性能高的硬件大幅降价,导致软件性能优化的成本被抵消。这种情况下,软件性能优化的投入值不值呢?要看如何看待这个问题,从技术的角度是值得的。

嵌入式GUI性能优化的关键是QML程序的优化。一般来说,性能优化主要针对以下三个方面:

  • 启动速度

  • 运行体验,是否卡顿

  • 占用GPU,内存等系统资源

1.1 启动速度的优化

A)使用Qt商业版特有的qt quick compiler编译优化工具,进行预编译。QML编译器管道将QML和ECMAScript编译为二进制数据结构和字节码/程序集,以及帮助执行生成的代码的运行。有了这个管道,避免了临时加载qml文件进行解释的过程,提高了程序性能,缩短启动时间,降低内存消耗。而且还直接从Codegen生成与平台无关且非常紧凑、可直接执行的字节码,完全跳过任何中间表示,以节省RAM、磁盘空间。

B)将逻辑放到C++处理,QML只负责显示布局及动画。

C)采用动态加载QML的方式

D)选择合适的Qt版本

1.2 运行体验的优化

A)选择合适的Qt版本,性能可大幅提升

B)调整加载时机

C)设计不合理,优化设计

1.3 GPU资源占用优化

A)优化算法,减少不必要的描画

B)设计不合理,优化设计。

1.4 性能优化分析工具

Qt商业版特有的QML Profiler是应用程序性能问题分析优化工具,非常好用,直接定位代码。可以帮助开发人员:

①分析定位应用程序中典型性能问题,比如启动慢、响应慢、用户界面不稳定等;

②精确分析各阶段性能参数,快速定位性能瓶颈;

③多种形式展现全面的运行、渲染性能分析数据。

2、开发效率优化工具

常言道:工欲善其事,必先利其器。关于GUI性能优化效率,包括整个GUI开发效率的问题,不仅仅是技巧的问题。Qt本身是一个优秀的跨平台开发框架,而商业版具有开源版所不具备的特有工具和功能,这对提高开发效率以及优化效率具有重要意义。

2.1 Qt Quick Designer(导入式设计工具)

Qt Quick Designer集成于Qt Creator,是基于Qt Quick的拖拽式开发工具。可以直接导入PS文件,为设计人员带来所见即所得的界面创建体验,为开发人员自动生成源代码,并且支持基于Qt Designer源码实现自定义开发。

2.2 Qt Lite Configuration Tool(可视化裁剪开发工具)

Qt Lite Configuration Tool是用于Qt库裁剪的可视化配置工具,具有商业增强版功能。对Qt库的剪裁,开源用户只能通过命令行进行配置,而且对开发者的要求非常高,且需要不断试错、编译,才能完成高质量的裁剪。而商业版提供可视化裁剪工具,通过模块勾选方式配置Qt库,避免盲目试错时需要消耗大量的编译时间。