スレッドごとの統計情報を取得するためにcallgrind / kcachegrindを使用して
-
24-09-2019 - |
質問
私は自分のアプリケーション内の各スレッドがcallgrindを使用する方法を「高価」を参照できるようにしたいと思います。私はあなたに、その後、全体のアプリとスレッドごとの1のためのcallgrindファイルを与える--separate-thread=yes
オプションでプロファイル。
このは、任意のスレッドのプロフィールを閲覧するのに便利ですが、私はスレッドが最大の豚である見ることができるように、私が本当にしたいことは、各スレッドからCPU時間のちょうどソートされたリストです。
解決
Valgrindの/ Callgrindは、この動作を許可していません。どちらkcachegrindはありませんが、私はそれが良いの改善になると思います。たぶん、いくつかの答えは自分のメーリングリスト上で見つけることができます。
作業のが、本当に退屈の方法は、使用オプション--separate-thread=no
になり、各スレッドの別のの関数名やクラス名の使用するようにコードを更新することができます。あなたのコードの複雑さをによって、それが答えかもしれない()1computeData()、2computeDataを(使用して、...)
他のヒント
を同時にkcachegrind中だけオープン複数のプロファイルます。
所属していません StackOverflow