我们正在开发一个多线程项目。我的同事说gprof完美无缺地使用多线程程序。我不久前读到了。
http://sam.zoy.org/writings/programming/gprof.html
http://lists.gnu.org/archive/html/bug-binutils/2010-05/msg00029.html
我也读到了这个:
How to profile multi-threaded C++ application on Linux?
所以我猜测不再需要解决方法了吗?如果是这样,那么何时不需要?
答案 0 :(得分:1)
除非你改变处理,否则gprof会正常工作。
更改处理意味着使用协处理器或gpus作为计算单元。在最坏的情况下,您必须为每个线程手动调用setitimer
函数。但是根据最新版本(2013-14),它不是必需的。
在某些情况下,它表现得很顽皮。因此,我建议使用英特尔的VTUNE,这将提供更准确,更详细的信息。