2010-03-04 33 views
8

我希望能够看到我的应用程序中每个线程的“昂贵”是如何使用callgrind的。我使用--separate-thread=yes选项进行了配置,该选项为您提供了整个应用程序的callgrind文件,然后每个线程一个。使用callgrind/kcachegrind获取每个线程的统计信息

这是观看任何给定的线程的轮廓是有用的,但我真正想要的是从每个线程的CPU时间只是排序列表,所以我可以看到哪些线程是最大的猪。

回答

3

Valgrind/Callgrind不允许这种行为。 kcachegrind都没有,但我认为这会是一个很好的改进。也许有些答案可以在他们的邮件列表中找到。

的工作但真钻方式可以是使用选项--separate-thread=no,并更新代码以使用为每个线程不同函数名或类名。根据你的代码的复杂性,它可能是答案(使用1computeData(),2computeData(),..)

+0

是的,这与我所达到的结论大致相同。猜猜这是一个开源贡献的好主意! – 2010-08-31 16:44:43

-2

只需打开多个同时在kcachegrind轮廓。