Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个需要 11 秒的功能。我想分析它在 I/O 上花费的时间。是否有任何工具用于分析函数内的 I/O 时间花费?哪个可以给出静态的
Total Time I/O TIME Function Name x y f
这个方法会告诉你。
只需暂停 10 次。每次查看堆栈。
如果您在执行 IO 的过程中发现它,例如,其中 6 次暂停,这意味着大约 60% 的时间在 IO 中。
如果您想知道函数 F 请求的 IO 中花费了多少,只需计算函数 F 在堆栈上时执行 IO 的样本数。
(gprof不会告诉你这一点,因为它会在 IO 期间暂停采样。)
补充:或者,您可以在函数 F 中将 IO 调用存根,并测量有和没有 IO 的总体时间。