5

11秒かかる機能があります。I/O に費やしている時間をプロファイリングしたいと考えています。関数内で費やす I/O 時間をプロファイリングするためのツールはありますか? 次のような統計を与えることができます

Total Time  I/O TIME Function Name
x           y        f  
4

1 に答える 1

3

この方法でわかります。

10回ほど一時停止します。毎回スタックを見てください。

たとえば、これらの一時停止のうち6つでIOを実行する過程でそれをキャッチすると、その時間の約60%がIOにあることを意味します。

関数Fによって要求されたIOにどれだけ費やされたかを知りたい場合は、関数Fがスタック上にあるときにIOを実行していたサンプルの数を数えるだけです。

gprofは、IO中にサンプリングを一時停止するため、これを通知しません。)

追加:あるいは、関数FでIO呼び出しをスタブアウトし、IOがある場合とない場合の全体的な時間を測定することもできます。

于 2012-04-10T14:03:51.013 に答える