問題タブ [gprof]
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.
linux - .so ライブラリで gprof を使用しますか?
.so プラグインを構築していて、gprof を使用してプロファイルしたいと考えています。現時点では、リンクしている実行可能ファイルを (-pg オプションを使用して) 再構築することはできません。gprof を使用して、この .so ファイルをロードしてリンクした後、そのファイルだけをプロファイリングすることはできますか?
c++ - gprof を使用してデーモンプロセスを正常に終了せずにプロファイリングする方法は?
C++ で記述されたデーモンをプロファイリングする必要があるため、gprof は、gmon.out を取得するためにプロセスを終了する必要があると言います。ctrl-c で gmon.out を取得するアイデアを誰かが持っているのだろうか? CPUサイクルのホットスポットを知りたい
c - SCons でビルドされたプログラムに gprof サポートを組み込む方法は?
ご挨拶、
ここに私のSConstructファイルがあります:
また、コンパイルの出力は次のとおりです。
ご覧のとおり、「-pg」オプションをビルド環境に渡します。ビルド後、プログラムを実行して「gmon.out」を生成しましたが、生成されません。
誰でもこの問題を確認できますか? または解決策がありますか?
ありがとう。
アップデート:
ここで与えられたアドバイスのおかげで、更新された作業 SConstruct ファイルは次のようになります。リンカーはフラグを必要とするため、scons を介して渡すには、「LINKFLAGS」オプションを使用する必要があります。
コンパイルの出力:
リンク段階で「-pg」が追加されていることに注意してください。
gcc - -pg でコンパイルするときに gmon.out ファイルの名前を変更します
gccでコンパイルする際にプロファイルフラグ(-pg)を設定した際に作成されるファイルgmon.outのデフォルト名を、例えば[実行ファイル名].gmon.outに変更することはできますか?
同じディレクトリに複数の実行可能ファイルがあり、並行して実行する必要があるため、これが必要です。
c++ - gprofでのタイムサンプリングの問題
gprofを使用して、オプション-pgを含むg++でコンパイルされたc++コードのプロファイリングを試みています。ただし、プログラムが私のコンピューターで実行されるのに10〜15分かかるという事実にもかかわらず(CPUが最大になっている場合)、gprofによって生成されるテーブルの%時間、累積秒、および自己秒の列は完全に0.00秒です!呼び出し列には、基本関数への150,000を超える呼び出しなど、正しい外観のデータが含まれています。収集されたデータのサンプルは次のとおりです。
プログラムは文字列を使用せず、#includeはiostream(最終的な回答を出力するためにのみ使用される)のみであるため、文字列の検索と比較、またはこの質問で提案されている他の同様の遅い外部関数のために遅くなることはありません:できませんgprofを使用して時間を蓄積する-gnuプロファイラー
プログラム自体は正常に終了し、プロファイルデータが正しく書き込まれていないと信じる理由はありません(ここで提案されているように:gprofは時間が蓄積されていないことを報告します)
これはすべてWindows7で行われているため、SharkまたはValgrindを使用することはできません。
各機能に費やされた0.00秒を記録している理由はありますか?
linux - Gprofでプロファイリングするドライバーをコンパイルする方法
簡単な質問..Gprofでプロファイリングするドライバーをコンパイルする方法は?
私の現在のMakefile:
正常に動作しますが(ドライバーなどをロードできます)、ファイルに-pgオプションを追加しようとすると、エラーが発生します。
Makefile:
エラーが発生します:
c - Clangで-pgの代わりに?
パフォーマンスへの影響をできるだけ少なくして(したがってGCCと同様に-pg
)、ClangでコンパイルされたバイナリをCPU(可能な場合はサンプル)のプロファイルを作成したいと思います。コードのインストルメンテーションを使用する、またはgprofと同様の出力を生成する代替手段はありますか?
java - Javaコードのプロファイリング
ソースからNutchと呼ばれるJavaWeb検索プログラムのプロファイルを作成しようとしています。私が理解している限り、プロファイリングするには、GProfなどのプログラムで開くプロファイルファイルを生成するために、コンパイラでプロファイリングを有効にする必要があります。ソフトウェアをコンパイルするためにすべてがソースルートディレクトリでANTを実行している場合、これを行うにはどうすればよいですか?
c - gprofが特定の関数の呼び出し数を出力しないことがあるのはなぜですか?
アプリケーションは-O0-g-pgでコンパイルされ、gprofはデフォルト設定で実行されます。
c - gprofがプログラムの実行時間を大幅に過小評価しているのはなぜですか?
このプログラムの実行には2.34秒かかりますが、gprofによると1.18秒しかかかりません。他の場所で回答を読んだことがありますが、たとえばプログラムがI / Oバウンドの場合、gprofが間違っている可能性があることを示唆していますが、このプログラムは明らかにそうではありません。
これは、私がプロファイリングしようとしている便利なプログラムでも発生します。これは、この些細なテストケースに固有のものではありません。
(また、この場合、gprofは、main()がプログラムの実行時間の100%以上を占めると言っています。これはかなりばかげたバグですが、実際には問題を引き起こしません。)