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