我想测量特定系统调用的运行时间,例如,我想知道pread
需要多少时间在 CPU 和 I/O 上。
我应该使用哪个功能?
现在我使用times
,它可以工作。
gettimeofday
是获取当前时间,那可能不只是计算特定进程的运行时间吧?
clock
是返回这个程序到目前为止使用的 CPU 时间,这是否包括 I/O 时间?如果还有其他程序在运行,会不会影响这个功能的时间?我的意思是切换运行过程。
getrusage
看起来很理想,但它也返回CPU
特定过程的时间。
有谁知道像iozone这样的基准工具如何计算system calls
时间?我已经阅读了它的代码,但仍然不知道。