11秒かかる機能があります。I/O に費やしている時間をプロファイリングしたいと考えています。関数内で費やす I/O 時間をプロファイリングするためのツールはありますか? 次のような統計を与えることができます
Total Time I/O TIME Function Name
x y f
10回ほど一時停止します。毎回スタックを見てください。
たとえば、これらの一時停止のうち6つでIOを実行する過程でそれをキャッチすると、その時間の約60%がIOにあることを意味します。
関数Fによって要求されたIOにどれだけ費やされたかを知りたい場合は、関数Fがスタック上にあるときにIOを実行していたサンプルの数を数えるだけです。
(gprofは、IO中にサンプリングを一時停止するため、これを通知しません。)
追加:あるいは、関数FでIO呼び出しをスタブアウトし、IOがある場合とない場合の全体的な時間を測定することもできます。