問題タブ [gperftools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
242 参照

c++ - aarch64 用の Google perf ツールのリンク

PCでGoogleパフォーマンスツールを正常に使用しています。ただし、aarch64 アーキテクチャ用にコンパイルおよびデプロイしているため、x86 で取得したプロファイリング結果が aarch64 と一致しない場合があります。

aarch64 デバイスで直接測定したかったのです。フラグを付けてコンパイルしRelWithDebInfo、プロファイラーの実行時リンクを使用してコードを実行しましたLD_PRELOAD

私の最初の試みでは、ほとんどの場合、関数名の代わりにアドレスを取得しました:

ただし、一部の関数の実際の関数名を取得しました。

LD_PRELOADオプションはお勧めしません。-lprofilerx86 PC で、次のようにしてGoogle パフォーマンス ツールをコンパイルした後、オプションでリンクしようとしました。

コードを実行しようとするとmake、次のエラーが発生しました。

Google perf ツールを使用して aarch64 デバイスの CPU をプロファイリングするにはどうすればよいですか?

0 投票する
2 に答える
1634 参照

profiling - gperftools - プロファイル ファイルがダンプされない

gpreftoolsを構成してビルドしました。ただし、プログラムを表示するために生成されたプロファイル ファイルが見つからないようです。

私は次の行動をとった:

  1. -lprofilermy にリンカー フラグを追加し.pro、プログラムをビルドすると、リンク段階でフラグが正しく追加されます。 QMAKE_LFLAGS += -lprofiler

  2. 実行中: $ CPUPROFILE=/tmp/prof.out /path/to/executable

  3. 実行中: $ pprof --gv /path/to/MyExe /tmp/prof.out

次に、次のようになります。

Failed to get profile: curl -s --max-time 90 'http:///pprof/profile?seconds=30' > /home/eslam/pprof/.tmp.MyExe.1509005857.: No such file or directory.

誰でもこれについて解決策を持っていますか?

0 投票する
1 に答える
376 参照

c++ - gperftools での明らかなメモリ リーク

これは、アドレスサニタイザーで構築されたプログラムを実行しているときに表示され、興味をそそられました。

gperftools ソース コードには、次の関数が含まれています。

以下のようにInitModule定義して

私たちのアドレス サニタイザー (もちろん valgrind ではありません) は、MallocExtensionオブジェクトのメモリ リークについて文句を言います。どうやら、それは正しいです。しかし、そもそもなぜこの割り当てがあるのでしょうか?

独自のメモリ アロケータを開発している人々が、このような些細な間違いを犯すとは思いません。valgrind に対する明示的なチェックもあります。では、割り当ての目的は何ですか?

0 投票する
1 に答える
1853 参照

c++ - cmake : Google プロファイラー (gperftools) とのリンクに失敗しました

私はubuntu 16.04を使用しています。

ここで私がしたこと:

  1. インストールされた gperftools :

    /li>
  2. FindGperftools.cmake をダウンロード: https://github.com/vast-io/vast/blob/master/cmake/FindGperftools.cmake

  3. 名前を変更FindGperftools.cmakeして、パッケージ内GperftoolsConfig.cmakeのフォルダーに配置しましたcmake

  4. に追加CMakelists.txt:

    /li>
  5. 同じ CMakelists.txt で、実行可能ファイルをリンクします。

    /li>
  6. 端末で、CPUPROFILE 環境変数をエクスポートします。

    /li>
  7. 同じターミナルで、実行可能ファイルを実行します。

    /li>

エラー メッセージはありませんが、ログ ファイル/my_path/prof.outは作成されません。

「my_executable」で「ldd」を実行すると、プロファイラーに対するリンクは表示さldd ./my_executable | grep profilれません (結果は何もありません)。それでも、ビルドフォルダー内のファイルを見ると、コンパイラーはリンケージを行っているようです ( -lprofileis there )。

私が忘れているかもしれないものはありますか?

注: 関連性があるかどうかはわかりませんが、私は catkin を使用しています。