8

アプリケーションの各スレッドがcallgrindをどのように「高価」に使用しているかを確認したいと思います。--separate-thread=yesアプリ全体のcallgrindファイルとスレッドごとに1つのcallgrindファイルを提供するオプションを使用 してプロファイルを作成しました。

これは特定のスレッドのプロファイルを表示するのに便利ですが、私が本当に必要としているのは、各スレッドからのCPU時間のソートされたリストであり、どのスレッドが最大の豚であるかを確認できます。

4

2 に答える 2

4

Valgrind/Callgrind では、この動作は許可されていません。kcachegrind もそうではありませんが、良い改善になると思います。メーリングリストでいくつかの答えが見つかるかもしれません。

optionを使用し、スレッドごとに異なる関数名またはクラス名を使用するようにコードを更新することは、機能するが本当に退屈な方法です。コードの複雑さに応じて、それが答えになる可能性があります(1computeData()、2computeData()、..を使用)--separate-thread=no

于 2010-07-21T11:42:39.980 に答える