我希望能够看到我的应用程序中的每个线程使用callgrind有多“昂贵”。我使用--separate-thread=yes选项进行了分析,它为整个应用程序提供了一个callgrind文件,然后每个线程一个文件。
这对于查看任何给定线程的配置文件都很有用,但我真正想要的只是每个线程的CPU时间的排序列表,这样我就可以看到哪些线程占用的CPU时间最多。
发布于 2010-07-21 19:42:40
Valgrind/Callgrind不允许这种行为。两个kcachegrind都没有,但我认为这将是一个很好的改进。也许可以在他们的邮件列表中找到一些答案。
一种有效但非常无聊的方法是使用选项--separate-thread=no,并更新您的代码,以便为每个线程使用不同的函数名或类名。根据您的代码复杂性,它可能是答案(使用1computeData(),2computeData(),..)
发布于 2014-11-06 09:19:00
只需在kcachegrind中同时打开多个配置文件。
https://stackoverflow.com/questions/2381647
复制相似问题