EMBRACE THE NEW ERA OF INDUSTRY
来源: 日期: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库,避免盲目试错时需要消耗大量的编译时间。