5

私はで最初のステップを実行していますKCachegrind/Cachegrind。マシンAで実行Cachegrindしてから、KCachegrindがインストールされているマシンBに出力ファイルを移動しました。

理由はわかりませんが、いつも最初の機能を表示していて、写真のような使い方(unknown)があるので悪いです。19.46私が間違っていることは何ですか?出力ファイルには必要な情報がすべて含まれているはずですか?

  1. コンパイルフラグを使用して-gいますが、それで十分ですか?ちなみに最適化版を使いたいのですが、うまくいくかわかりません。
  2. プロファイリングを行うのと同じマシンでKcachegrindを実行するのが最善でしょうか?

ここに画像の説明を入力してください

4

3 に答える 3

1

プログラムの存続期間中に、この「不明な」関数がいつ呼び出されるかを確認します。不明な関数がmainの前に呼び出された場合、それはコードではなく、実際に心配する必要はありません。それがメインの後の場合、それはまだあなたのコードではないかもしれませんが、もう少し調査する必要があります。

于 2011-12-02T14:31:59.777 に答える
0

すべてのライブラリのデバッグバージョンをリンクしていますか?そうでない場合、関数呼び出しがどこで終了するかはわかりません。

  1. ライブラリでデバッグシンボルを取得するには、はい-gで十分です。何かをデバッグしたい場合は、最適化を使用しないことをお勧めします。
  2. 環境が同じであれば、それは問題ではありません。
于 2011-04-03T18:19:58.617 に答える
0

マシンAとマシンBは同じアーキテクチャ、つまりx86ですか?

Kcachegrindが現在のマシンで利用できない関数への情報を持っていないので、同じアーキテクチャを持っていない場合は問題が発生します。

ARM用コードプロファイラー

于 2012-02-20T05:40:46.010 に答える