問題タブ [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.

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

c - gccではなくvalgrindを使用したプロファイリング

しばらくの間、gprofを使用してCコードのプロファイリングを行ってきましたが、非常に不安定で、実行するたびに、%だけでなく異なるシミュレーション時間も与えられます。valgrindに切り替えることにしました。valgrindを使用してプロファイリングしていますが、データを表示してgprofと同様の結果を取得したいと思います。gprofで、実行時間の割合、self ns/callを取得しました

kcachegrindを使用せずにこの情報を取得する方法はありますか?

KcachegrindはUIを開いています。いくつかのプロファイリングを一緒に実行したいので、分析できるようにファイルを取得することを好みます。

助けてくれてありがとう

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

linux - Linux で gprof を使用するには?

ファイルに C コードがあります。groftest.cを使用してプロファイリングする必要があります。そのために次のコマンドを使用しました。

gcc -p -o result test.c
./result
gprof result

出力の一部は次のようになります。

`フラット プロファイル: 各サンプルは 0.01 秒としてカウントされます。時間の蓄積なし

% 累積セルフ セルフ トータル
時間 秒 秒 コール Ts/コール Ts/コール名`

問題は、どのような複雑なプログラムや簡単なプログラムを使用しても、各サンプルカウントが 0.01 秒から変化しないことです。

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

c++ - 出力に関する gprof の問題

問題は、gprof の出力に "Index by function name" しか表示されないのはなぜですか?

このチュートリアルをサポートしてアプリケーションをコンパイルしました: http://ececmpsysweb.groups.et.byu.net/cmpsys.2004.winter/citizenship/Bryan_Wheeler/Profiling_Tutorial.html

したがって、私のアプリケーションは -p -pg でコンパイルされます

./application を使用してアプリケーションを実行すると、mon.out ファイルが作成されますが、これは関数名でのみインデックスを保持します。これはちょっと奇妙です。

誰かが同じ経験をしたか、ここで何が間違っているかを知っていますか。

ありがとう、アルカトロス

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

ios - iOSでのGCCコールグラフプロファイリング(-pg、gprof)は可能ですか?

iOS で GCC コール グラフ プロファイリングを使用する方法はありますか? Xcode4 で GENERATE_PROFILING_CODE を設定しても、iOS デバイス用にビルドする場合は効果がないようです (-pg がコンパイラまたはリンカーに渡されることもありません)。 iPhone/iPad?

Instrument の Time Profiler は、すべてのスレッドを定期的にサンプリングするだけなので、迅速な呼び出しを簡単に見逃す可能性があります。可能な限り最小のサンプリング間隔を使用する場合でも。

更新:
パフォーマンスのホットスポットを見つけるためにそれをしようとしているわけではありません。プログラムの実行中にどの関数が何回呼び出されたかという正確な統計が必要です。サンプリングは正確である必要があり (したがって、関数呼び出しの欠落は禁物です)、CPU フレンドリーである必要があります (そのプロファイリングなしでコードを実行する場合と比較して、CPU 時間を浪費しすぎてはなりません)。

0 投票する
4 に答える
2381 参照

c++ - 時間を無駄にする簡単な操作?

連続して繰り返すと時間を「無駄にする」ことができる簡単な操作/ルーチンを探しています。

私はgpr​​ofがアプリケーションをどのようにプロファイリングするかを研究しているので、この「時間の浪費」はユーザースペースで時間を無駄にする必要があり、外部ライブラリを必要としないはずです。IE、sleep(20)を呼び出すと、20秒の時間が「無駄」になりますが、gprofは別のライブラリ内で発生したため、今回は記録しません。

時間を無駄にするために繰り返すことができる単純なタスクの推奨事項はありますか?

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

profiling - kcachegrind で gprof の出力を表示する

kcachegrind で gprof の出力を表示するには? gcc の gmon.out から callgrind.out へのコンバーターはありますか?

0 投票する
3 に答える
25650 参照

gcc - gccの-pgフラグはどのように機能しますか?

を使用してCコードをコンパイルするときに-pg(または)フラグがどのように機能するかを理解しようとしています。-pgcc

公式のgccドキュメントには次のように記載されています

-pg
分析プログラムgprofに適したプロファイル情報を書き込むための追加のコードを生成します。このオプションは、データが必要なソースファイルをコンパイルするときに使用する必要があります。また、リンクするときにも使用する必要があります。

私はプロファイラーについて小さな調査を行っているので、これは本当に興味があります-仕事に最適なツールを選択しようとしています。

0 投票する
4 に答える
12456 参照

c - 行列乗算アルゴリズムのループの順序がパフォーマンスに影響するのはなぜですか?

2つの行列の積を見つけるための2つの関数が与えられます。

を使用して2つの実行可能ファイルを実行しgprof、プロファイリングしました。それぞれ、この関数を除いて同じコードを使用しています。これらの2つ目は、サイズが2048 x 2048のマトリックスの場合、大幅に(約5倍)高速です。理由について何か考えはありますか?

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

c++ - C++ クラス関数を含む gprof symspec

大規模な C++ プログラムの特定の部分をプロファイリングしようとしています。gprof とGprof2Dotを使用して素敵なグラフを生成しています。ただし、特定の起動関数をグラフから除外したいと考えています。

gprof -Qclass::init を実行して class::init とそのすべての子を抑制できるはずだと思っていましたが、うまくいかないようです。実際、「::」を含む「symspec」を機能させることができません。-Qmain は期待どおりに動作しますが、

gprof に "::" で関数名を含めたり除外したりするには、どのような魔法のトリックを行う必要がありますか?

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

c++ - gprof 出力の解釈

プログラムでパフォーマンスの問題を見つけようとしているため、プロファイリングを使用してコードをインストルメント化しました。gprof は、次のようなフラット プロファイルを作成します。

より短い時間で多くの行が続きます。

最初の質問: std::deque に問題があるように見えると信じるのは有効な仮定ですか? 問題は、std::deque を使用していることはわかっていますが、<char>.

この仮定が正しい場合、コール スタックを見て、この両端キューがどこで使用されているかを確認することは理にかなっているようです。ただし、関連するすべてのエントリは!deque<char>によってのみ呼び出されます。<spontaneous>

ほんの一例:

この両端キューについて詳しく調べる方法はありますか?

ヒントをありがとう!