配置文件功能执行

使用 Valgrind 工具套件中的 Callgrind 工具,您可以在 Valgrind 的工具套件中检测与函数执行相关的问题。将 Callgrind 生成的数据文件加载到 KCachegrind 配置文件数据可视化工具中,浏览性能结果。

在下载和安装 Valgrind 工具和 KCachegrind 后,您可以从 Qt Creator 使用 Callgrind 和 KCachegrind。

注意:您可以在 Linux 上本地安装和运行 Callgrind 和 KCachegrind。您可以从任何计算机上在远程 Linux 机器或设备上运行 Callgrind。

为性能分析构建应用

Callgrind 记录应用程序运行时执行的函数的调用历史。它收集执行的指令数量,与源代码行的关系,以及函数之间调用者和被调用者的关系和调用次数。您还可以使用缓存模拟或分支预测来收集有关应用程序运行行为的信息。

由于调试和发布构建配置的运行时特征有很大差异,因此一个构建配置的分析结果可能不适用于另一个。通常,性能分析调试构建时通常会发现在低级代码(如容器实现)中花费的时间很大,而相同的代码由于内联和其他优化而在同一应用程序的发布构建中不会出现在配置文件中。

许多最新的编译器允许您同时构建一个具有调试信息的优化应用程序。例如,GCC 的典型选项是:-g -O2。建议使用这种设置进行 Callgrind 性能分析。

收集数据

要分析应用程序

  1. 转到“项目”模式,并选择一个发布构建配置。
  2. 在选择器中,选择调试 > Callgrind

    {Callgrind view toolbar}

  3. 选择 以启动应用程序。
  4. 使用应用程序进行分析。
  5. 选择 以在函数视图中查看分析结果。

选择 以在分析时通过暂停事件记录来加速程序执行。当日志暂停时,不计事件。

选择 以重置所有事件计数器。

选择 以丢弃所有收集到的数据。

选择 以在 KCachegrind 中查看数据。Qt Creator 启动 KCachegrind 并将数据加载到其中进行可视化。

查看收集到的数据

分析结果显示在 Callgrind 视图中。您可以分离视图并移动它们。要恢复更改,选择 视图 > 重置为默认布局

选择 视图 来显示或隐藏视图和视图标题。默认情况下隐藏 可视化 视图。选择 在显示时刷新显示在其中的数据。

作为收集数据的替代,您可以选择 将外部日志文件加载到 Callgrind 视图中。

"Callgrind views"

过滤器 字段中输入字符串以过滤结果。

将光标移动到 函数 视图中的一个函数上以获取更多关于它的信息。

双击一个函数以在 调用者 视图中查看调用函数的信息,和在 被调用者 视图中查看被调用函数的信息。

选择 被调用者 视图中在不同函数之间导航。

要设置成本格式,选择 $。您可以查看绝对成本、相对成本,以及相对于父级的相对成本。选择 以仅查看来自项目的分析信息。

要正确处理递归或循环函数调用,请通过选择 O 启用循环检测。

要显示函数名时移除模板参数列表,选择 <>

另请参阅 使用 Memcheck 检测内存泄露分析函数执行在外部应用程序上运行 Valgrind 工具为项目指定 Valgrind 设置Valgrind Callgrind,以及 Valgrind Memcheck

©2024 The Qt Company Ltd. 本文档的贡献内容包括其各自所有者的版权。提供的文档是根据自由软件基金会公布的 GNU 自由文档许可证版本 1.3 的条款授权的。Qt 和相应的徽标是 The Qt Company Ltd 在芬兰和其他世界各地的商标。其他所有商标均为其各自所有者的财产。