【发布时间】:2011-01-30 15:09:44
【问题描述】:
我曾经使用 gprof 进行所有 Linux 分析。
但是,对于我的多线程应用程序,它的输出似乎不一致。
现在,我把这个挖出来了:
http://sam.zoy.org/writings/programming/gprof.html
但是,这是很久以前的事了,在我的 gprof 输出中,我的 gprof 似乎列出了非主线程使用的函数。
所以,我的问题是:
- 在 2010 年,我可以轻松地使用 gprof 来分析多线程 Linux C++ 应用程序吗? (Ubuntu 9.10)
- 我还应该使用哪些其他工具进行分析?
【问题讨论】:
-
最好不要像 valgrind 那样放慢速度。
-
请告诉我替代方案,但不要告诉我替代方案。检查。
-
@stefanB :gprof 使用 g++ 的 -pg 的减速很好; valgrind 的减速至少是 10 倍
-
@dmckee @stefanB 你为什么这么苛刻? valgrind 大大减慢了程序的速度,这是一个完全有效的观察。如果可以选择的话,我也会选择最快的分析器。
-
Valgrind 的品牌忠诚度很高,尽管速度慢了 10 倍。问题是它不会按比例减慢 I/O,所以如果通常有 30% 的时间花在不必要的 I/O 上,在 Valgrind 下它看起来只有 3%。
标签: c++ multithreading profiling gprof