在运行时调查C++软件中的类
Investigating a class in C++ software at runtime
我有一个基于C++的程序启动并运行,我的问题是我想知道:
- 被称为最多的 top10、top5、topX 方法是什么
- 计算最重的类是什么,或者哪些线程需要最大时钟周期
Linux下可以使用valgrind
,perf
或类似工具执行此操作吗?
我不应该说这个应用程序使用许多第三方库,但我对这些不感兴趣,因为我想修改和改进的是应用程序本身的核心,所以我可以将所有可能的方法列表缩减到仅由"真实应用程序"实现的方法。
通常如何检测导致分支最大故障和性能损失的类或方法是什么?
您正在寻找探查器,例如 gprof
。
您正在搜索的程序称为探查器。它为您提供了调用的方法列表以及它们使用的程序运行时间的百分比。如果你在Linux下,你可以使用valgrind这样的工具,在Windows上我个人使用Very Sleepy。您还可以查看此线程以获取 Linux 下的分析器列表:thread
要计算函数的机器周期或调用的深度,您可以使用量化工具。
相关文章:
- 用于在并发环境中访问 MMIO 的软件模式
- 有没有办法实现 fmu 导出到基于 c++ 的仿真软件以使用 fmi?
- 从C++调用 Python 并访问通过 Anaconda 安装的软件包
- 有关图像处理应用程序的硬件和软件安全性的建议
- 通过自制软件(macOS)安装的clang++:编译错误
- 如何在软件代码中使用ofstream创建文件
- 如何在Linux上正确发布C++软件(游戏)
- 尝试使用 RTool 在 R4.0 上安装软件包时出现编译错误
- Visual Studio Code输出被检测为恶意软件?
- 如何使用自制软件,cMake和cLion将库添加到C++项目中
- 我正在尝试编写将 ASCII 转换为十进制、添加并转换回 ASCII 的软件
- 在 C/C++ 中,是否可以通过使用指针更改"important"内存地址的值来创建简单的恶意软件?
- 使用策略模式设计软件时出现的问题
- 为什么 Avira 认为"CoCreateInstance()"是恶意软件?
- 在陈述"Implementation-defined"时,什么样的软件是"Implementation"的一部分?究竟什么是"Implementation"?
- 如何导入使用自制软件安装的 GMP?
- 在 Linux 上分发软件时的库依赖关系?
- 在RHEL6上使用最近的gcc进行编译:如何分发软件?
- 构建软件应用程序
- mingw-64 - 安装软件包