2

私はC++ベースのプログラムを起動して実行していますが、私の問題は次のことを知りたいということです。

  • 最もよく呼ばれるtop10、top5、topXメソッドは何ですか
  • 計算に最も重いクラスは何ですか、または最大クロックサイクルを必要とするスレッドは何ですか

Linuxで、、または同様のvalgrindツールを使用してこれを行うことは可能ですか?perf

このアプリケーションが多くのサードパーティライブラリを使用していることはありませんが、変更および改善したいのはアプリ自体のコアであるため、これらのライブラリには興味がありません。可能なすべてのメソッドのリストを実装されたものに減らすことができます。 「実際のアプリケーション」によってのみ。

一般に、分岐とパフォーマンスの低下における最大の障害の原因となるクラスまたはメソッドを検出する方法は?

4

3 に答える 3

2

などのプロファイラーを探していgprofます。

于 2012-12-15T18:42:29.017 に答える
1

関数または呼び出しの深さのマシンサイクルを計算するには、QUANTIFYツールを使用できます。

于 2012-12-15T19:36:03.923 に答える
1

探しているプログラムはプロファイラーと呼ばれます。呼び出されたメソッドのリストと、それらが使用するプログラム実行時間の割合を示します。Linux を使用している場合は、valgrind などのツールを使用できます。Windows では、私が個人的に Very Sleepy を使用しています。Linux でのプロファイラーのリストについては、次のスレッドも参照してください。

于 2012-12-15T18:43:56.810 に答える