分析 I/O C++所花费的时间

Profiling time spent in I/O C++

本文关键字:时间 C++ 分析      更新时间:2023-10-16

我有一个需要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 的总时间。