3

アプリケーションは計算を行いませんが、I / O、ファイルの読み取り、ネットワークの使用を行います。プロファイラーに表示してほしい。

私は、callgrindのように、問題ごとにclock_gettimeを呼び出すようなものを期待しています。

または、アプリケーションを中断するoprofileのように(スリープ中またはソケット/ファイルなどを待機している間)、アプリケーションが何をしているのかを確認します。

「read」、「connect」、「nanosleep」、「send」、特に「fsync」(およびそのすべての呼び出し元)を太字にします(計算を実行する文字列や数値関数などではありません)。

プラットフォーム:GNU / Linux @ i386

4

2 に答える 2

2

Linux用の簡単なサンプリングプロファイラーをすばやくハックアップしました:http://vi-server.org/vi/simple_sampling_profiler.html

backtrace(3)上のファイルに追加してからSIGUSR1、注釈付きのソースに変換します。

プログラムを定期的にプローブすると、何かを待機する関数が表示されます。

そして、スタックを歩くと、発信者も表示されます。

また、同様の質問への回答からの人々はズームをお勧めします。

于 2010-10-22T11:39:00.143 に答える
0

あなたのプラットフォームとあなたがやろうとしていることについてもう少し知らずにその質問に答える本当の方法はありません。

Intelプラットフォームで実行しているときは、タイムスタンプカウンター(RDTSC)を使用するのが好きです。サブマイクロ秒の範囲でresoultionを打ち負かすことは困難です。コードのチャンクの前後に呼び出しを行い、違いを比較します。

于 2010-10-21T23:11:48.070 に答える