zoukankan      html  css  js  c++  java
  • Linux系统-real/user/sys time

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

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

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

    http://man7.org/linux/man-pages/man2/gettimeofday.2.html

    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耗时
    ————————————————
    版权声明:本文为CSDN博主「shuaixio」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/baidu_35692628/java/article/details/77387827

  • 相关阅读:
    求一个二维数组的最大子矩阵
    在一整型数组中找到此数组中子数组和的最大值
    软件工程个人小项目:写一个程序,分析一个文本文件(英文文章)中各个词出现的频率,并且把频率最高的10个词打印出来
    Redis 为什么这么快?
    在netfarmerwork3.5版本的winform下执行string串中的代码
    c# 反射(Reflection)详解
    string,特殊的引用类型
    c#使用HashSet<T>集合去重
    c# .Net重试机制
    观察者模式
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/12718055.html
Copyright © 2011-2022 走看看