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

Viv*_*oel 5 c++ linux profiling

我有一个需要 11 秒的函数。我想分析它在 I/O 上花费了多少时间。是否有任何工具可以分析函数内部的 I/O 时间花费?这可以给静态像

Total Time  I/O TIME Function Name
x           y        f  
Run Code Online (Sandbox Code Playgroud)

Mik*_*vey 3

这个方法会告诉你。

暂停10次左右就可以了。每次都看堆栈。

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

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

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

补充:或者,您可以在函数 F 中删除 IO 调用,并测量有或没有 IO 的总时间。