問題タブ [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.
c - gccではなくvalgrindを使用したプロファイリング
しばらくの間、gprofを使用してCコードのプロファイリングを行ってきましたが、非常に不安定で、実行するたびに、%だけでなく異なるシミュレーション時間も与えられます。valgrindに切り替えることにしました。valgrindを使用してプロファイリングしていますが、データを表示してgprofと同様の結果を取得したいと思います。gprofで、実行時間の割合、self ns/callを取得しました
kcachegrindを使用せずにこの情報を取得する方法はありますか?
KcachegrindはUIを開いています。いくつかのプロファイリングを一緒に実行したいので、分析できるようにファイルを取得することを好みます。
助けてくれてありがとう
linux - Linux で gprof を使用するには?
ファイルに C コードがあります。groftest.c
を使用してプロファイリングする必要があります。そのために次のコマンドを使用しました。
gcc -p -o result test.c
./result
gprof result
出力の一部は次のようになります。
`フラット プロファイル: 各サンプルは 0.01 秒としてカウントされます。時間の蓄積なし
% 累積セルフ セルフ トータル
時間 秒 秒 コール Ts/コール Ts/コール名`
問題は、どのような複雑なプログラムや簡単なプログラムを使用しても、各サンプルカウントが 0.01 秒から変化しないことです。
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 ファイルが作成されますが、これは関数名でのみインデックスを保持します。これはちょっと奇妙です。
誰かが同じ経験をしたか、ここで何が間違っているかを知っていますか。
ありがとう、アルカトロス
ios - iOSでのGCCコールグラフプロファイリング(-pg、gprof)は可能ですか?
iOS で GCC コール グラフ プロファイリングを使用する方法はありますか? Xcode4 で GENERATE_PROFILING_CODE を設定しても、iOS デバイス用にビルドする場合は効果がないようです (-pg がコンパイラまたはリンカーに渡されることもありません)。 iPhone/iPad?
Instrument の Time Profiler は、すべてのスレッドを定期的にサンプリングするだけなので、迅速な呼び出しを簡単に見逃す可能性があります。可能な限り最小のサンプリング間隔を使用する場合でも。
更新:
パフォーマンスのホットスポットを見つけるためにそれをしようとしているわけではありません。プログラムの実行中にどの関数が何回呼び出されたかという正確な統計が必要です。サンプリングは正確である必要があり (したがって、関数呼び出しの欠落は禁物です)、CPU フレンドリーである必要があります (そのプロファイリングなしでコードを実行する場合と比較して、CPU 時間を浪費しすぎてはなりません)。
c++ - 時間を無駄にする簡単な操作?
連続して繰り返すと時間を「無駄にする」ことができる簡単な操作/ルーチンを探しています。
私はgprofがアプリケーションをどのようにプロファイリングするかを研究しているので、この「時間の浪費」はユーザースペースで時間を無駄にする必要があり、外部ライブラリを必要としないはずです。IE、sleep(20)を呼び出すと、20秒の時間が「無駄」になりますが、gprofは別のライブラリ内で発生したため、今回は記録しません。
時間を無駄にするために繰り返すことができる単純なタスクの推奨事項はありますか?
profiling - kcachegrind で gprof の出力を表示する
kcachegrind で gprof の出力を表示するには? gcc の gmon.out から callgrind.out へのコンバーターはありますか?
gcc - gccの-pgフラグはどのように機能しますか?
を使用してCコードをコンパイルするときに-pg
(または)フラグがどのように機能するかを理解しようとしています。-p
gcc
公式のgccドキュメントには次のように記載されています。
-pg
分析プログラムgprofに適したプロファイル情報を書き込むための追加のコードを生成します。このオプションは、データが必要なソースファイルをコンパイルするときに使用する必要があります。また、リンクするときにも使用する必要があります。
私はプロファイラーについて小さな調査を行っているので、これは本当に興味があります-仕事に最適なツールを選択しようとしています。
c - 行列乗算アルゴリズムのループの順序がパフォーマンスに影響するのはなぜですか?
2つの行列の積を見つけるための2つの関数が与えられます。
を使用して2つの実行可能ファイルを実行しgprof
、プロファイリングしました。それぞれ、この関数を除いて同じコードを使用しています。これらの2つ目は、サイズが2048 x 2048のマトリックスの場合、大幅に(約5倍)高速です。理由について何か考えはありますか?
c++ - C++ クラス関数を含む gprof symspec
大規模な C++ プログラムの特定の部分をプロファイリングしようとしています。gprof とGprof2Dotを使用して素敵なグラフを生成しています。ただし、特定の起動関数をグラフから除外したいと考えています。
gprof -Qclass::init を実行して class::init とそのすべての子を抑制できるはずだと思っていましたが、うまくいかないようです。実際、「::」を含む「symspec」を機能させることができません。-Qmain は期待どおりに動作しますが、
gprof に "::" で関数名を含めたり除外したりするには、どのような魔法のトリックを行う必要がありますか?
c++ - gprof 出力の解釈
プログラムでパフォーマンスの問題を見つけようとしているため、プロファイリングを使用してコードをインストルメント化しました。gprof は、次のようなフラット プロファイルを作成します。
より短い時間で多くの行が続きます。
最初の質問: std::deque に問題があるように見えると信じるのは有効な仮定ですか? 問題は、std::deque を使用していることはわかっていますが、<char>
.
この仮定が正しい場合、コール スタックを見て、この両端キューがどこで使用されているかを確認することは理にかなっているようです。ただし、関連するすべてのエントリは!deque<char>
によってのみ呼び出されます。<spontaneous>
ほんの一例:
この両端キューについて詳しく調べる方法はありますか?
ヒントをありがとう!