Pau*_* D. 8 multithreading valgrind callgrind kcachegrind
我希望能够看到我的应用程序中的每个线程使用callgrind"昂贵".我使用--separate-thread=yes选项进行了分析,该选项为整个应用程序提供了一个callgrind文件,然后是每个线程一个.
这对于查看任何给定线程的配置文件很有用,但我真正想要的只是每个线程的CPU时间排序列表,因此我可以看到哪些线程是最大的线程.
Valgrind/Callgrind 不允许这种行为。kcachegrind 也没有,但我认为这将是一个很好的改进。也许可以在他们的邮件列表中找到一些答案。
一种有效但非常无聊的方法可能是使用 option --separate-thread=no,并更新代码以对每个线程使用不同的函数名称或类名称。根据您的代码复杂性,这可能是答案(使用 1computeData(), 2computeData(), ..)