問題タブ [google-perftools]

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 に答える
372 参照

c++ - tcmalloc が dlopen 経由で提供される関数名を出力しない理由

次のプロジェクトがあります: main.cpp

共有.cpp:

およびメイクファイル:

このテスト プログラムをデバッグするために tcmalloc を使用します。このテスト プログラムは動的に libshared.so:foo をロードし、it.run コマンドを実行します: LD_PRELOAD=/usr/local/lib/libtcmalloc.so HEAPCHECK=normal ./a.out

1 つの最大のリーク:

  • ローカル ファイル ./a.out を使用します。
  • 割り当てられた 1 つのオブジェクトで 40 バイトのリーク:
  • @ 7fe3460bd9ba 0x00007fe3460bd9ba
  • @400b43 メイン
  • @ 7fe346c33ec5 __libc_start_main
  • @ 400999 _start
  • @ 0_init

foo 関数で line ではなくアドレス 0x00007fe3460bd9ba を取得するのはなぜですか? 助けてください

Ps LD_PRELOAD=.../tcmalloc.so で gdb を使用しようとしましたが、次のメッセージが表示されます。

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

c++ - このプログラムを共有ライブラリでコンパイルして実行すると、tcmalloc が失敗するのはなぜですか?

ここのコードに似たコード: なぜ tcmalloc は、dlopen 経由で提供される関数名を出力しないのですか?

メイクファイル:

  • 全て:
  • g++ -fPIC -g -c shared.cpp -ltcmalloc
  • g++ -shared -o shared_libs/libshared.so -g shared.o -ltcmalloc
  • g++ -L shared_libs/ -g main.cpp -ldl -ltcmalloc

プログラムを実行すると:

コアファイルを含むgdbは次のように述べています:

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

cpython - gperftools がファイルの識別に失敗する

Google パフォーマンス ツールがファイルを "??:?" としてリストするのを避ける方法はありますか? 呼び出されている関数がどのライブラリに含まれているかを調べるにはどうすればよいですか?

多くのコンパイル済み C 拡張モジュールを含む python パッケージで C コードをプロファイリングできるようにすることを目指しています。上記のおもちゃの例で、「dtrsm_」が定義されている場所を突き止めるにはどうすればよいでしょうか? 同じ名前の関数を含む複数のロード済みライブラリがある場合、どのバージョンが呼び出されているかを知る方法はありますか?

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

c++ - tcmalloc とリンクするとメモリ使用量が 500MB 削減されるのはなぜですか?

私のプログラムでは、それぞれ 100 万の要素を持つ 5 つのベクトルを作成します。O3 最適化を使用してプログラムをコンパイルすると、実行中に約 2 GB かかります。ただし、O3 の最適化を使用してコンパイルし、google-perf が提供する tcmalloc ライブラリとリンクすると、最大 1.5 GB の常駐セット サイズしか必要としません。誰かが私になぜこれが起こるのか説明してもらえますか? tcmalloc に対するリンクは、glibc malloc に対するリンクより常に優れていますか?