問題タブ [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.
c - gperftools プロファイラーの出力 (プロファイル ファイル) を分析できません
C コードの分析にgperftoolsを使用しています。pprof
その結果、アプリケーションを使用してプロファイル ファイルを分析できません。
私は何を間違っていますか?profile.ftab
ファイルは何ですか?
c++ - gperftools を使用すると存在しないエッジがコール グラフに表示されるのはなぜですか?
f または g を呼び出す次のコードがあるとします。
私はコンパイルします
そして実行します
そして、gifを生成します
私は次のことを得る
ただし、f から g へ、f からそれ自体へ、g からそれ自体へのエッジがあります。最適化はありません (念のために -O0 を指定して再試行しました)。また、-lunwind を使用した場合と使用しない場合も試しました。
プロファイラーが f が g を呼び出していると考えるのはなぜですか? プロファイラーを正しく使用するにはどうすればよいですか?
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 を使用して結果を取得しているため、シンボルを取得できないのはなぜですか?? どうすれば修正できますか?助けて?ありがとうございました!!!
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
同様のエラーが発生します:
c++ - C++ ライブラリ名の 'f' サフィックスは何を意味し、どのようにロードしますか?
私は gperftools v2.3rc を使用しており、改善されたスレッド機能のプロファイリングを使用したいと考えています。リリース ノートには、一部次のように記載されています。
Linux での新しい CPU プロファイリング モードが実装されました。個別のスレッドに対して個別のプロファイリング タイマーを設定します。... librt.fをロードし、CPUPROFILE_PER_THREAD_TIMERS 環境変数を設定すると有効になります。...
私の C++ アプリケーションは librt.so (-lrt — POSIX.1b Realtime Extensions ライブラリ) にリンクされていますが、.f サフィックスが付いたライブラリについて聞いたことがありません。.f の意味、このライブラリはどこにありますか、アプリケーションにロードするにはどうすればよいですか?
linux - gperftools: makefile を変更して別のフォルダーにインストールしますか?
私はgperftoolsをインストールしていました:
https://code.google.com/p/gperftools/
すべてが機能し、プロジェクトが /usr/local/lib にリンクしていることがわかります
代わりに、ライブラリをプロジェクトのローカル フォルダーに配置したいと考えています。
この背後にある理由は、プロジェクトを別のマシンに配置しているためです。パッケージ全体ではなく、libprofiler および libtcmalloc ライブラリに対してリンクする必要があるだけで、pprof なども付属しています。
マシンのアーキテクチャも異なるため、コピーして貼り付けるのではなく、実際にそのディレクトリにビルドする必要があります
これは取るに足らないことですか?
c - C gperftools - C コードのプロファイリング
gperftools を使用したコードのプロファイリング (ソース コードの行ごと) を生成しようとしています。
しかし
pprof が「印刷するノードがありません」と表示するのはなぜですか?