在运行时调查C++软件中的类

Investigating a class in C++ software at runtime

本文关键字:软件 C++ 运行时 调查      更新时间:2023-10-16

我有一个基于C++的程序启动并运行,我的问题是我想知道:

  • 被称为最多的 top10、top5、topX 方法是什么
  • 计算最重的类是什么,或者哪些线程需要最大时钟周期

Linux下可以使用valgrindperf或类似工具执行此操作吗?

我不应该说这个应用程序使用许多第三方库,但我对这些不感兴趣,因为我想修改和改进的是应用程序本身的核心,所以我可以将所有可能的方法列表缩减到仅由"真实应用程序"实现的方法。

通常如何检测导致分支最大故障和性能损失的类或方法是什么?

您正在寻找探查器,例如 gprof

您正在搜索的程序称为探查器。它为您提供了调用的方法列表以及它们使用的程序运行时间的百分比。如果你在Linux下,你可以使用valgrind这样的工具,在Windows上我个人使用Very Sleepy。您还可以查看此线程以获取 Linux 下的分析器列表:thread

要计算函数的机器周期或调用的深度,您可以使用量化工具。