Я хотел бы смочь видеть, как "дорогой" каждый поток в моем приложении использует callgrind. Я представил с --separate-thread=yes
опция, которая дает Вам callgrind файл для целого приложения и затем одного на поток.
Это полезно для того, чтобы посмотреть профиль любого данного потока, но что я действительно хочу, просто отсортированный список процессорного времени от каждого потока, таким образом, я вижу, какие потоки являются самыми большими пожирателями ресурсов.
Valgrind / Callgrind не допускает такого поведения. Ни kcachegrind не поддерживает, но я думаю, что это будет хорошее улучшение. Может быть, какие-то ответы можно найти в их списке рассылки.
Рабочий , но действительно утомительный способ мог бы заключаться в использовании опции - отдельной-нить = no
и обновлении кода, чтобы использовать для каждого потока разные ] имя функции или имя класса. В зависимости от сложности кода, это может быть ответ (с использованием 1computeData (), 2computeData (), ..)