問題タブ [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 投票する
3 に答える
3319 参照

c - gperftools プロファイラーの出力 (プロファイル ファイル) を分析できません

C コードの分析にgperftoolsを使用しています。pprofその結果、アプリケーションを使用してプロファイル ファイルを分析できません。

私は何を間違っていますか?profile.ftabファイルは何ですか?

0 投票する
0 に答える
165 参照

c++ - gperftools を使用すると存在しないエッジがコール グラフに表示されるのはなぜですか?

f または g を呼び出す次のコードがあるとします。

私はコンパイルします

そして実行します

そして、gifを生成します

私は次のことを得るここに画像の説明を入力

ただし、f から g へ、f からそれ自体へ、g からそれ自体へのエッジがあります。最適化はありません (念のために -O0 を指定して再試行しました)。また、-lunwind を使用した場合と使用しない場合も試しました。

プロファイラーが f が g を呼び出していると考えるのはなぜですか? プロファイラーを正しく使用するにはどうすればよいですか?

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

c++ - gperftools cpuProfiler は、ARM デバイスによって作成されたファイルをプロファイリングするときにシンボルを表示できません

ARM デバイスで実行される C++ アプリケーションをプロファイリングしたいと考えています。アプリを実行し、ProfilerStart("googleProfBL.prof") を使用してプロファイリングしたため、ファイルが生成されました。ローカル コンピューターで ARM デバイスからファイルを開くと、次のようになります。

./pprof --text --add_lib=libraryIwanttoDebug.so BinaryThatLoadsThatLibrary googleProfBL.prof Using local file /home/genius/PresControler/src-build-target/deploy/NavStartup. Using local file ../traces/googleProfBL.prof. Warning: address ffffffffffffffff is longer than address length 8 Warning: address ffffffffffffffff is longer than address length 8 Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475. Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475. Total: 5347 samples 258 4.8% 4.8% 258 4.8% 0x76d4c276 144 2.7% 7.5% 144 2.7% 0x76da2cc4 126 2.4% 9.9% 126 2.4% 0x5d0f8284 114 2.1% 12.0% 114 2.1% 0x76d27386 64 1.2% 13.2% 64 1.2% 0x76dba2dc 53 1.0% 14.2% 53 1.0% 0x76dba1f4 ...

so ライブラリはデバッグ モードでコンパイルされています (ストリップされていません)。シンボルを取得できない理由がわかりません。

私はこれを試しました:

./pprof --text --add_lib=aFileOfTheLibrary.o BinaryThatLoadsThatLibrary googleProfBL.prof Looks like I got a couple of symbols. Using local file /home/genius/PresControler/src-build-target/deploy/NavStartup. Using local file ../traces/googleProfBL.prof. Warning: address ffffffffffffffff is longer than address length 8 Warning: address ffffffffffffffff is longer than address length 8 Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475. Hexadecimal number > 0xffffffff non-portable at ./pprof line 4475. Total: 5347 samples 258 4.8% 4.8% 258 4.8% 0x76d4c276 144 2.7% 7.5% 144 2.7% 0x76da2cc4 126 2.4% 9.9% 126 2.4% 0x5d0f8284 114 2.1% 12.0% 114 2.1% 0x76d27386 64 1.2% 13.2% 64 1.2% 0x76dba2dc 53 1.0% 14.2% 53 1.0% 0x76dba1f4 50 0.9% 15.1% 50 0.9% 0x76dbf1bc 34 0.6% 15.8% 34 0.6% 0x72eae1b4 30 0.6% 16.3% 30 0.6% 0x76d8a32a 30 0.6% 16.9% 30 0.6% 0x76d8e2c0 .. 0 0.0% 100.0% 7 0.1% std::forward_as_tuple <- I couldn't see that before!!! 私が持っているすべての .o に対して --add_lib を実行しようとしましたが、それ以上シンボルを取得できません。インテルを使用して結果をチェックし、ARM を使用して結果を取得しているため、シンボルを取得できないのはなぜですか?? どうすれば修正できますか?助けて?ありがとうございました!!!

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

profiling - pprof を gperftools で使用すると curl エラーが発生する

だから私は次のことをしてきました:

これは彼らがここに示す例の1つであるため、ここで何が起こっているのかわかりません: http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html

これでls、実際には情報が含まれていないことがわかりましたが、curl に関するエラーが発生してはならないこともわかっています。この場合、それは別のものである必要があります。ここで何が間違っていますか?

また、作成したサンプル プログラムに対してこれを実行しようとしました (例:pprof --callgrind /home/user/csteifel/testing2/X86_64_DEBUG/el6/wtf ~/testing2/prof.out > callgrind.out同様のエラーが発生します:

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

c++ - C++ ライブラリ名の 'f' サフィックスは何を意味し、どのようにロードしますか?

私は gperftools v2.3rc を使用しており、改善されたスレッド機能のプロファイリングを使用したいと考えています。リリース ノートには、一部次のように記載されています。

Linux での新しい CPU プロファイリング モードが実装されました。個別のスレッドに対して個別のプロファイリング タイマーを設定します。... librt.fをロードし、CPUPROFILE_PER_THREAD_TIMERS 環境変数を設定すると有効になります。...

私の C++ アプリケーションは librt.so (-lrt — POSIX.1b Realtime Extensions ライブラリ) にリンクされていますが、.f サフィックスが付いたライブラリについて聞いたことがありません。.f の意味、このライブラリはどこにありますか、アプリケーションにロードするにはどうすればよいですか?

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

linux - gperftools: makefile を変更して別のフォルダーにインストールしますか?

私はgperftoolsをインストールしていました:

https://code.google.com/p/gperftools/

すべてが機能し、プロジェクトが /usr/local/lib にリンクしていることがわかります

代わりに、ライブラリをプロジェクトのローカル フォルダーに配置したいと考えています。

この背後にある理由は、プロジェクトを別のマシンに配置しているためです。パッケージ全体ではなく、libprofiler および libtcmalloc ライブラリに対してリンクする必要があるだけで、pprof なども付属しています。

マシンのアーキテクチャも異なるため、コピーして貼り付けるのではなく、実際にそのディレクトリにビルドする必要があります

これは取るに足らないことですか?

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

c - C gperftools - C コードのプロファイリング

gperftools を使用したコードのプロファイリング (ソース コードの行ごと) を生成しようとしています。

しかし

pprof が「印刷するノードがありません」と表示するのはなぜですか?