Linux系统-real/user/sys time

time命令

程序执行时加上time能够粗略统计程序执行过程中的耗时。通常会有三个值real time, user time和sys time.

1. real time
  • 概念:程序从开始到结束所经历的时间,也就是用户所感受到的时间。包括当前程序CPU的用时和所有延迟程序执行的因素的耗时总和(比如其他程序耗时,等待I/O完成耗时等)。

  • 来源:real time是由gettimeofday()中结束时间与开始时间相减得来。


2. user time
  • 概念:程序执行过程中在用户空间(user space)中所花费的所有时间,即程序用户模式下的CPU耗时。

    • 仅指当前进程。
    • 其他进程的时间和当前进程I/O阻塞的时间均不计在内。
  • 来源:user time是由wait()或times()系统调用得来。


3. sys time
  • 概念:程序执行过程中内核空间(kernel space)中所花费的时间,即程序在内核调用中的CPU耗时。

    • 仅指当前进程。
    • 程序的库代码调用仍然是在用户空间下。
  • 来源:sys time是由wait()或times()系统调用得来。


三者的关系

  • 当前进程的实际CPU耗时

    当前进程实际CPU耗时 = user time + sys time

  • 单线程情况下real/user/sys关系

    real time = 当前进程的CPU耗时 + 其他因素耗时

    当前进程的CPU耗时 = user time + sys time

    real time > 当前进程的CPU耗时

  • 多核多线程情况下real/user/sys关系

    此时,不同线程可以并行执行,导致user + sys的时间可能大于real的时间

    当前进程的CPU耗时 = user time + sys time

    real time < 当前进程的CPU耗时



Acknowledgements:
http://blog.sciencenet.cn/blog-830496-782593.html
http://blog.csdn.net/nevasun/article/details/7004355

2017.08.18

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值