では最も信頼性の高いプロファイリングツールgprofはkcachegrind?
-
27-10-2019 - |
質問
プロファイリングもC++数延コードの両方で gprof
や kcachegrind
を同様の機能に貢献するものの実行時間(50-80%によっては入力)機能との間に10~30%の両方のこれらのツールはいられている。ることがどういうことなのではない。いよい。
解決
gprof 実際になかなかれているものも。ここでは、そうなんです。1)サンプルのプログラムカウンターで一定速度記録をどのように多くのサンプルの土地を各機能(時間)2)カウント回数などの他の機能通話せ機能B.からできるどのように多くの時は各機能を呼び出して、その平均専用の時間でした。平均を含時の各機能での伝搬専用の時間上のグラフで表示します。
れば期待はこれを何らかの精度に注意する必要がありますの課題です。最初にそろっていますから、CPU数-時間-工程内で盲目のI/Oまたはその他のシステムに発信します。第二に、再帰混乱させます。第三に、その機能を必ず付の平均走行時間がないということを要求し、読みください。-行う機能(コグラフ)を知っておくべきことについて、よりラインのコードは、単なる人気をみると、何もします。第五に、この精度で測定するもの 関連する 見つける"ボトルネック"でこのお値段はとっても人気の前提は、何もします。
Callgrind 働くことのできるレベルのライン-素排出量を定義しています。残念ながらではの問題を抱えてきました。
が達の目標は、"ボトルネック"ではなく一般に測定するべき壁掛時計の時刻でスタックサンプラーを報告%によるラインなど ズーム.理由は簡単でも馴染みのない.
いプログラムバンチの機能、各パート間の合計が10秒に短縮されました。また、サンプラーとサンプルだけでなく、カウンタープログラムは、呼び出しスタックに、なすべての時間に一定の割合で、100倍です。(無視するその他のプロセスです。)
では、最終的には、1000サンプルのスタックです。ピラーコードLされるものであります。例えば、皆さんがなんとな最適化するラインにより、回避で除去し、又は通過するかに高速プロセッサー
いったいどうなるサンプル?
このコンポーネントのLまたは)いつの間にか、サンプルのヒットで、サンプルだけ 消, の低減、全サンプル数やそのための合計時間!実際に全体の時間が減れば、それぞれの時間をLにあったスタックは、それぞれのサンプルが含ます。
いきすぎることはめったにない統計ですが、多くの人々"という思いを大切にしている必要は多くのサンプルと考えている精度の測定が重要になります。ではない場合、その理由をやっていることか修正しくスピードアップを図.を重視 発見 何を固定ではなく、 測定 ます。ラインLのスタックの一端数Fの時間ですよね?で各サンプル確率でFを打つのです。のように反転します。あの理論の ルールの継承.その下の簡素化が一般に想定)場合、フリップコインの数字を見"ヘッド"S"時代までの見積りの公正性をFとして(平均) (S+1)/(N+2)
.そのため、またどのパターン 三 サンプル、L 二つの のだが? もちろん、そうではありません。
がす い 知り平均で(2+1)/(3+2) または 60%.それがどのくらい時間を節約することができるか(平均)による"最適化を離れて"ライン特論もちろん、スタックのサンプルを示します 正確に がラインLのボトルネック"**)です。かんなんだ措置では小数点桁数?
ちなみに、免疫を すべての他、上記の問題.
しみたい""ういたお金を遊びを入れておくクォート周辺の"ボトルネック"などソフトウェアの最も遅いものと共通のネックします。より良い比喩である"流出"から"だけで不必要な廃棄物ます。
他のヒント
gprof
sタイミングデータの統計について詳し 詳細プロファイリング docs).
一方で、 KCacheGrind
用途 valgrind
実際に解釈すべてのコードです。
なので KCacheGrind
できる"より正確な"時の費用の架) の場合 CPUモデル valgrind
あの真からのCPUを搭載しています。
ある一つの選択によっても異なりますどのような架を処理することができます.私の経験 gprof
加未実行時のオーバーヘッド実行時間があるので、それでいて便( -pg
追加のコードをそれぞれの機能.い状況に応じて、又はその他のほうがいっそう適切である。
より良い" gprof
データは、コード長(および広範囲の試験データださい。はいをしないように測定する統計的に有意.