2017-11-11 5 views
0

フラットプロファイルを印刷する前に、gprofにサンプル数の頻度があることを知っています。サンプル数の頻度に基づいて、私の判断はプログラムが実行される時間が長くなり、プロファイリングのために収集されるサンプルが多くなり、データがより良くなります。しかし、これが本当であるかどうか、長期実行プログラムがgprofでプロファイリングされるのに適しているかどうかは、私には分かりません。gprofは長期実行プログラムの解析に適していますか?なぜ、なぜそうではないのですか?

任意の入力は本当に参考になります。

+0

あなたは「分析」と言うとき、何* gprofの*はあなたを伝えることは非常にあなたがプログラマに朗報である可能性が高いプログラム、スピードアップするために行うことができないんです - *偽*良いニュースが。 [*ここではその理由だし、それが良い行う方法。*](https://stackoverflow.com/a/1779343/23771)私は、プログラムのスピードアップ、gprofの結果のためだけの信憑性に関係しておりません –

+0

長い間実行されるプログラム – gajendra

答えて

1

真、gprofのは利点(すべてのプラットフォームで利用可能) 欠点は、しかし、より複雑なプログラムのために彼は適さないがあります。 1)機器は、共有ライブラリ内の関数呼び出しオーバーヘッド 2)カントプロファイルコードメインスレッド 3)プロファイルのみ)のキャッシュがあるdoes notギブプ/ S 6) 5ミスに関する)情報を提供するdoesntのループ などを分析doesntの追加します遠くで私に最も論理的なようだ

0

私の答えは次のとおりです。

プログラムが長時間実行であり、我々はプロファイリングにのみ関心がある場合は、grpofは、適切な ツール思わgprofのは、サンプル収集の頻度に依存しているので、これはデフォルトで100Hzです。 gprofのの 実行している時間が非常に小さく、この小さな期間内ならば、それは多くの機能を呼び出す場合は、 プロファイリングのためのサンプルサイズは、プロファイル 機能の非常に少ないので、サンプルがある信頼できない可能性が高いです。さもなければプロファイリング計装オーバーヘッドは、プログラムの 実行時間を増やすことができ、総実行時間は、単に オペレーティングシステムカーネルによって提供される適切な時間関数を呼び出すことによって測定することができる アプリケーションの実際の実行時間を反映しないかもしれません。

関連する問題