Back to Blog home

KDAB CEO推荐:Qt开发、调试、诊断的十大工具

Published on 星期一 十二月 03, 2018 by Richard Lin in C++ Clang OpenGL apitrace qt-blogs-chinese qt-labs-chinese qt-quarterly-chinese qtearth-blogs-chinese GammaRay HotSpot 嵌入式 Clazy KDAB | Comments

本文翻译自:Modern Qt Development: The Top 10 Tools You Should Be Using

原文作者:Matthias Kalle Dalheimer

KDAB集团的总裁兼首席执行官。自1996年以来,一直使用Qt进行开发,是KDE项目的创始成员之一。他写了许多书包括《Running Linux》和《Programming with Qt》。

KDAB集团是全球知名软件咨询公司,专注于跨桌面、嵌入式和移动平台的Qt、C++和OpenGL应用。

校审:Richard Lin

为什么在工作中使用合适的工具非常重要?大家马上会想到两个原因:效率和成效。您不会看到建筑工人用鞋底敲钉子,那为什么软件开发者经常要手动查找bug或优化代码呢?无疑这样做的效率非常低,令人筋疲力竭,最终的结果也并不理想。

学习新工具总是需要花费时间 —— 那么怎样才能高效地分配您时间呢?接下來我们KADB将分享我们最喜欢的而且值得学习的Qt开发工具。 我们经常使用这些工具来帮助定位和修复bug,并解决困难的优化任务。如果您一直身处Qt开发的前沿,您可能知道许多类似的工具,但无论您的专业水平如何,我们相信您都能在这里发现一些新东西。

GammaRay —— 自检工具,能把Qt的框架添加到调试器中。

如果您因为无休止的Qt框架内部调试而沮丧,那么一定要尝试一下这个工具。GammaRay深入理解大多数Qt核心组件,如QtQuick scene graphs、模型/视图结构、QTextDocuments、信号/槽的行为、焦点处理、GPU纹理、QWidget、状态机等,它允许您在运行时以自然的方式观察和编辑这些值。您可以以启动或附加到已运行应用程序的方式调试应用(可以调试本地或远程的应用程序)。

Clazy —— 能理解Qt语义的编译器插件

这是每个Qt开发者都需要掌握的诀窍。給clang添加 Clazy插件,您将得到Qt最佳优化的编译时警告,包括未期的内存分配、API使用不当以及效率低下的构造。 Clazy 是一个提升您Qt代码质量的好方法。最重要的是,它在不需要编写任何代码的情况下为它发现的错误提供自动重构修复!

现代的C++ —— 使用C+11/14/17优化的代码

虽然C+11和C+14已经存在了一段时间,但是有许多旧的编码习惯很难消除。许多开发者还没有利用最新的C++语法,而这些新语法更高效、更容易理解和维护。现在您不需要成为C++标准的专家,就能去进行细微的、却能大幅提高您代码质量的修改。下面的文章中我们将会介绍相关的关键特性,或者您也可以参加一、两个培训课程以了解实际技术内幕。

Clang Tidy —— 助您实现C++代码现代化的编译工具

这是为懒人设计的C++代码现代化的工具。Clang Tidy是另一种基于Clang的工具,它能识别旧的、可以升级的C++语法。它标记出应该用新C+11或C+14来进行改进的地方,并且在许多情况下可以自动完成替换。这能提升您的生产力!

HotSpot  —— 应用程序CPU性能的可视化工具

在优化方面,什么也比不上分析器。但是读取原始的性能日志是一种熬煎,只适合于那些认为zip包是一种正确管理源代码方式的人们。HotSpot读取Linux性能日志,并让您看到多个不同的视图(调用者、时间线、自上而下、自下而上),以帮助您轻松地了解您正在消耗时间的位置。

apitrace  —— 调试图形API并提高其性能的一组工具

如果您正在编写GUI应用程序,那么分析器不会在C++代码中停下来。您需要一种方法来查看您对OpenGL、Direct3D或DirectDraw的调用,以图形方式查看这些调用的内容,并分析它们的性能。这就是 apitrace 的功能。它还可以重播一个记录文件,允许您在看到需要改进的地方之后对性能进行比较和基准测试。

Kernel/System Profiler  —— 操作系统性能的可视化工具

有时,在应用程序中找不到性能问题,问题出在多进程交互中,隐藏在驱动程序栈中,或者是您调用操作系统的方式导致的。对于这种非常底层的调试,您必须有一个系统分析工具。它可能让您感觉像杀鸡用牛刀,但系统剖析器是一个非常宝贵的工具,用它可以找到其他工具发现不了的问题。

Heaptrack  —— 查看应用程序内存使用情况的工具

有时候优化不是速度问题,而是内存问题。如果您想分析一下应用程序的内存使用情况,您会想看看这个。通过显示应用程序的峰值内存使用量、内存泄漏的函数、最大的内存分配者和极大多数临时分配的内存,您将能够真正精准定位应用程序内存的使用情况,并研究如何最小化其内存消耗。

持续集成 (CI) —— 敏捷开发的构建系统

无论您是否使用敏捷开发,持续集成系统和单元测试精密配合作为一种手段,都可以实实在在地提高您的软件质量。不要费心地从头开始创建您的CI构建系统,因为有很多好用的工具可以助您发布软件的质量更上一层楼。

QT Creator  – QT IDE

也许您认为将Qt Creator包含在这个列表中是凑数,因为它已经安装在每个Qt开发者的桌面上。是的,但是您知道可以通过内置的QML性能分析器在QtQuick代码中找到性能瓶颈吗?您知道点击Alt+Enter以获取光标位置上所有重构选项的列表?以及其他用于查找符号引用、执行git diff或记录宏以及许多其他超级有用的导航和编辑助手的快捷键吗?只有您熟知它们,才有可能一天用上十次。不要再做鼠标的奴隶了,把我们便携的快捷键参考卡片打印出来,贴到您办公座位的墙上。

这些就是我们提高Qt开发效率工具箱中的十大工具。别忘了还有一些是不能自动完成的,但有课程和定制培训,比如有效代码评审或最佳编码实践。

还有什么是您认为是无价的,您想要分享的吗?请在评论中留下建议!

您喜欢这篇文章吗?快到朋友圈分享吧!

Subscribe to Our Blog

Stay up to date with the latest marketing, sales and service tips and news.