5

我有一个需要 11 秒的功能。我想分析它在 I/O 上花费的时间。是否有任何工具用于分析函数内的 I/O 时间花费?哪个可以给出静态的

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

1 回答 1

3

这个方法会告诉你。

只需暂停 10 次。每次查看堆栈。

如果您在执行 IO 的过程中发现它,例如,其中 6 次暂停,这意味着大约 60% 的时间在 IO 中。

如果您想知道函数 F 请求的 IO 中花费了多少,只需计算函数 F 在堆栈上时执行 IO 的样本数。

gprof不会告诉你这一点,因为它会在 IO 期间暂停采样。)

补充:或者,您可以在函数 F 中将 IO 调用存根,并测量有和没有 IO 的总体时间。

于 2012-04-10T14:03:51.013 回答