$ time foo real 0m0.003s user 0m0.000s sys 0m0.004s $
在时间输出中,real、user和sys代表什么?在对我的应用程序进行基准测试时,哪一个是有意义的?
real
user
sys
real代表实际经过的时间,user代表CPU执行用户代码的时间,sys代表CPU执行内核系统调用的时间。在基准测试应用程序时,最有意义的是real时间,因为它是执行整个程序所花费的实际时间。
在bash time util中,sys时间指的是所有CPU在系统相关任务(如内存分配)上花费的累计时间。有时候,user+sys的时间可能会大于real时间,这是因为多个处理器可以并行工作。
在我的情况下,有时real时间会大于user+sys时间,这是因为我同时运行了很多并行进程。
解决方法是优化并发进程的管理,减少并行进程的数量,以降低系统相关任务的时间消耗,从而减少sys时间。
用户名或邮箱地址
密码