分析代码

要使用代码分析工具,请在Analyze Menu开始调试启动项目 (Start Debugging of Startup Project) 按钮的下拉菜单中选择该工具。在Debug 模式下,通过在调试器工具栏上的菜单中选择工具进行切换。

调试模式下的性能分析仪

Debug 模式下的视图拖动到屏幕上的新位置。视图的大小和位置将被保存,以备将来使用。选择View >Views >Reset to Default Layout 可将视图重置为原始大小和位置。

提高 QML 性能

Qt CreatorQML Profiler用于在运行 QML 代码时检查绑定评估和信号处理。这对识别潜在瓶颈很有用,尤其是在绑定评估中。

查找 QML 代码中的问题

对项目中的 QML 和 JavaScript 代码进行静态检查,找出常见问题,这与使用JSLint 类似。

使用 Clang 工具查找 C++ 代码中的问题

Qt Creator Clang-Tidy 是一个具有诊断功能的 Clang 工具,可帮助您在 C、C++ 和 Objective-C 源代码中使用静态分析查找问题:

  • Clang-Tidy,用于诊断和修复典型的编程错误,如样式违规或接口滥用。
  • Clazy,可帮助 Clang 理解 Qt 语义。它会显示与 Qt 相关的编译器警告,从不必要的内存分配到 API 的滥用,并提供重构操作来修复某些问题。

使用 Cppcheck 查找 C++ 代码中的问题

安装Cppcheck静态分析工具来检测 C++ 代码中的未定义行为和危险编码结构。Cppcheck 可在不实际运行应用程序的情况下分析源代码。

检查代码覆盖率

在 macOS、Linux 或 Windows 上安装用于 Tcl、QML、C# 和 C/C++ 程序的Coco代码覆盖工具链,以分析应用程序的运行方式,例如作为测试套件的一部分。利用分析结果,让测试更高效、更完整。

你可以

  • 查找未经测试的代码段。
  • 查找多余的测试,然后将其删除。Coco 可以识别测试覆盖的源代码部分。它可以检测新测试是否覆盖了源代码中现有测试未覆盖的行。
  • 通过显示从未执行过的代码来查找死代码。
  • 计算最佳测试执行顺序,以最大限度地提高每次运行的测试覆盖率。这对手动测试特别有用。
  • 分析应用程序的两个不同版本并比较差异。这样就能看到哪些测试会受到源代码修改的影响,还能对补丁或热修复的测试覆盖率进行一定程度的衡量。
  • 测量应用程序和测试的执行时间。

防止代码侵蚀

安装Axivion Suite可保护软件免受侵蚀。通过静态代码分析、架构分析和代码气味检测,您可以

  • 检查源代码是否存在潜在的运行时错误。
  • 使用指标生成源代码内部质量的量化信息。
  • 运行样式检查,以符合编码指南。
  • 检测源代码中的重复代码和相似代码。
  • 识别不同层次的循环依赖关系。
  • 检测无法访问的代码。

使用 Valgrind 工具进行剖析

安装Valgrind 工具套件中的 Memcheck 和 Callgrind,以检测内存泄露并剖析函数执行情况。

您可以在开发主机上本地运行 Valgrind 工具,也可以在另一台主机上远程运行。您既可以使用这些工具分析在Qt Creator 中设置了项目的应用程序,也可以分析没有项目的应用程序。

Valgrind 工具仅在 Linux 和 macOS 上受本地支持。不过,Valgrind.org 表示,对 macOS 10.8 和 10.9 的支持是试验性的,而且大部分都被破坏了。你可以从任何开发主机在远程 Linux 机器或设备上运行这些工具。

要运行 Valgrind 工具分析应用程序,请在Qt Creator 中打开项目,然后选择运行项目的工具包。工具包指定 Valgrind 工具是在本地运行还是远程运行。

有关分析没有项目的应用程序的更多信息,请参阅在外部应用程序上运行 Valgrind 工具

要为 Valgrind 工具设置首选项,请选择首选项>Analyzer 。您可以在Run Settings 中覆盖每个项目的常规设置。

使用 Heob 检测内存泄漏

在 Windows 上,安装Heob堆观察器来检测缓冲区超限和内存泄漏。

分析 CPU 使用情况

在 Linux 上,使用 Perf 分析应用程序在 Linux 桌面和嵌入式设备上的 CPU 和内存使用情况。

性能分析器使用捆绑在 Linux 内核中的 Perf 工具定期拍摄应用程序调用链的快照,并以时间线视图或火焰图的形式将其可视化。

可视化 Chrome 浏览器跟踪事件

使用Chrome 浏览器跟踪格式可视化器查看 Chrome浏览器跟踪事件。这在查看大型跟踪文件时尤其有用,因为使用内置跟踪查看器 (chrome://tracing) 很难将这些文件可视化。

另请参阅 "为项目激活工具包"、"如何:分析 "和 "分析器"。

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.