Qt:通过QML Profiler分析程序性能问题

对于一个程序的开发,性能优化是开发中的一个重要步骤。

我们肯定不希望开发出来的程序表现出卡顿,最好是处处流畅,丝滑般的体验。

对于C++程序,我们有很多方法可以做性能优化,例如Visual Studio Profiler。

而对于QML(QtQuick)程序,我们可以选择QML Profiler,这是QtCreator的一个功能。

那么QML Profiler是什么呢,官方的描述如下:

You can use the QML Profiler to find causes for typical performance problems in your applications, such as slowness and unresponsive, stuttering user interfaces. Typical causes include executing too much JavaScript in too few frames. All JavaScript must return before the GUI thread can proceed, and frames are delayed or dropped if the GUI thread is not ready.

也就是说,QML Profiler主要功能就是帮助我们去解决程序中典型的性能问题,说简单就是帮助我们做性能优化。

注意:这个性能优化,仅指QML这里,一般来说就是界面,可能还包含点界面逻辑代码(JS),而C++这块,QML Profiler几乎帮不上忙,最多是能给在QML中调用的槽函数记个耗时。
注意2:使用QML Profiler是优化QtQuick性能的基本功,之后我会再发几篇和QtQuick性能优化相关的文章,里面都会用到QML Profiler。本文只介绍QML Profiler,尽量不涉及具体的优化点。


正文开始:

借助于QML Profiler,我们快速的了解程序运行中的主要情况和耗时细则(可以精确到微秒),其中包括但不限于:

  • 图片缓存使用情况
  • 渲染耗时
  • 内存使用情况
  • 输入事件
  • 动画帧率
  • 编译耗时
  • 创建耗时
  • 绑定耗时
  • 信号处理耗时
  • JS代码耗时

那么对于QML Profiler这样的工具,使用起来是否非常复杂呢?
答案是:使用非常方便,甚至不需要额外的配置,连很多分析都是可视化的。使用步骤如下:

  • 准备Qt环境,我建议是Qt5.7或者更高版本。这是因为以前QML Profiler结果中很多数据是企业版的QtCreator才看得到的,有的数据非常重要,例如渲染的耗时。后来才向开源版开放。是5.6还是5.7有点记不清了,我用的是Qt5.8.0配合QtCreator4.2.1。

  • 打开QtCreator

  • 打开一个QML(QtQuick)工程,我这里使用的是默认的工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值