25

プログラムを再構築する必要がないので、valgrindを使用してプロファイリングを行いたいと思います。(プロファイリングしたいプログラムはすでに「-g」でビルドされています)

しかし、valgrind(callgrind)は非常に遅いです...だから私がすることは次のとおりです:

  1. サーバーを起動します(そのサーバーのプロファイルを作成します)
  2. そのサーバーへの接続の種類
  3. サーバーで操作を行う前に、プロファイルデータの収集を開始します
  4. 操作が完了したら、プロファイルデータの収集を終了します
  5. プロファイリングデータを分析します。

Solarisのsunstudioを使用してこの種のことを行うことができます。(dbxを使用)。valgrind(callgrind)を使用して同じことを行うことは可能ですか?

ありがとう

4

3 に答える 3

41

callgrindのドキュメントを見て、 callgrind_controlについて読む必要があります。

  1. アプリを起動します:valgrind --tool=callgrind --instr-atstart=no your_server.x
  2. 1を参照してください。
  3. プロファイルデータの収集を開始しますcallgrind_control -i on
  4. プロファイルデータの収集を終了しますcallgrind_control -i off
  5. kcachegrindまたはcallgrind_annotate/cg_annotateを使用してデータを分析します
于 2010-07-21T13:01:44.973 に答える
4

どのOS(Linuxを想定しています)かはわかりません。その場合、oprofile(無料)またはZoom(無料ではありませんが、評価ライセンスを取得できます)を確認することをお勧めします。どちらもサンプリングプロファイラーであり、再コンパイルせずに既存のコードをプロファイリングします。ズームははるかに優れていて使いやすいですが(GUIといくつかの優れた追加機能があります)、おそらくシステムにすでにoprofileがあります。

于 2010-03-08T08:25:47.400 に答える