能够附加到正在运行的进程的C++性能分析器?

5

我有一个用C++编写的程序,想要对其进行性能分析,并且希望在开始和停止性能分析时无需重新启动程序。理想情况下,我想同时对CPU使用率和内存分配进行性能分析。是否有任何工具可以实现这一点?我正在Linux上运行。


2
你在用什么平台?Windows?Linux? - Hasturkun
5个回答

4

2
我的建议是使用RotateRight的Zoom - 您可以从他们的网站下载免费的30天试用版。

++ 是的,Zoom是性能部分的好工具。我不太清楚内存部分,但我通常发现,如果由于过度内存分配而导致的缓慢,在性能调优中会显现出来。 - Mike Dunlavey

0
如果你仅需要简单的指标,过去我实现了一个简单的分析器。跟踪内存和时间。跟踪每个函数的开始和结束,并在开头和结尾打印一行。如果重要的话,跟踪之前和之后的内存。所有这些都通过一个运行时变量进行控制,你可以在外部更改它。在 Web 应用程序中,它可以是额外的 post/get 参数。在厚客户端程序中,它可以是一个额外的开关。
然后,在运行时,你可以开始收集数据。过去我也添加了多个级别,以允许选择性和更详细的数据收集。
祝你好运。

0
你可以尝试使用Valgrind。它是将不同模块捆绑在一起形成的一个整洁的软件包。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接