CPU时间

进程时间也称CPU时间,用以度量进程使用的中央处理器资源。进程时间以时钟嘀嗒计算,实际时间(Real),用户CPU时间(User),系统CPU时间(Sys)

实际时间指实际流逝的时间;用户时间和系统时间指特定进程使用的CPU时间:

  • real time是从进行开始执行到完成所经历的墙上时钟时间(wall clock)时间,包括其他进程使用的时间片(time slice)和本进程耗费在阻塞(如等待I/O操作完成)上的时间。
  • user time是进程执行用户态代码(内核外)耗费的CPU时间,仅统计该进程执行时实际使用的CPU时间,而不计入其他进程使用的时间片和本进程阻塞的时间
  • sys time 是该进程在内核态运行所耗费的CPU时间,即内核执行系统调用所使用的CPU时间

CPU总时间(user + sys)是CPU执行用户进程操作和内核(代表用户进程执行)系统调用所耗时间的总和,即该进程(包括线程和子进程)所使用的实际CPU时间。若程序循环遍历数组,则增加用户CPU时间;若程序执行exec或fork等系统调用,则增加系统CPU时间。

在多核处理器机器上,若进程含有多个线程或通过fork调用创建子进程,则实际时间可能小于CPU总时间,因为不同线程或进程可并行执行,但其时间会计入主进程的CPU总时间。若程序在某段时间处于等待状态而并未执行,则实际时间可能大于CPU总时间:

  1. real < CPU  表明进程为计算密集型(CPU bound),利用多核处理器的并行执行优势
  2. real ≈ CPU  表明进程为计算密集型,未并行执行
  3. real > CPU  表明进程为I/O密集型 (I/O bound),多核并行执行优势并不明显

CPU time与WALL time相关推荐

  1. cpu time和clock time、real time、wall time都是什么?以及在不同语言中如何计算?

    概念辨析 CPU time 指的是计算机处理器在执行一个特定程序时花费的时间,也就是程序在处理器上实际运行的时间. Clock time(也称为 wall time 或 real time)指的是程序 ...

  2. DIY Ruby CPU 分析 Part III

    [编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...

  3. DIY Ruby CPU 分析——Part III

    [编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...

  4. DIY Ruby CPU 分析 Part II

    [编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...

  5. Dottrace 10.0.2 使用心得

    开发环境vs2015 软件:JetBrains dotTrace 10.0.2 刚开始不知道怎么下手,多看了一会还有一位仁兄的解释.算是对某个功能小有入门了. 当前会查看某个方法在抓取快照时间它的执行 ...

  6. Python 和 C/C++ 拓展程序的性能优化

    背景 在 MegEngine imperative runtime 的早期开发中,我们面临着一些的性能优化问题.除了一些已知需要重构的地方(早期设计时为了开发效率而牺牲性能的妥协),还存在一些未知的性 ...

  7. Dottrace跟踪代码执行时间

    当自己程序遇到性能问题,比如请求反应缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过长,然后再分析应该怎样解决 ...

  8. 使用Dottrace跟踪代码执行时间

    当自己程序遇到性能问题,比如IIs请求反应缓慢,客户端程序执行缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过 ...

  9. 一文搞懂JAVA与GO垃圾回收

    导语  现代高级编程语言管理内存的方式分为两种:自动和手动.像 C.C++ 等编程语言使用手动管理内存的方式,编写代码过程中需要主动申请或者释放内存:而 PHP.Java 和 Go等语言使用自动的内存 ...

最新文章

  1. [Scoi2015]小凸玩矩阵
  2. exit命令的返回值
  3. Spring Cloud 服务安全连接
  4. 洛谷 P1027 Car的旅行路线
  5. JEPaas代码(SQL功能表)通过SQL功能表进行表查询
  6. 位置指纹法的实现(KNN)
  7. 深入剖析线程池基本原理以及常见面试题详解
  8. Video Analysis 相关领域解读之Video Captioning(视频to文字描述)
  9. 安卓手机qq怎么看密友值_qq密友值在哪看
  10. python学习笔记2---内置函数
  11. 我的团长我的团第十六集
  12. 日常问题(bug)反馈/回复的标准格式
  13. 让你两分钟明白什么是ERP
  14. java开发速成班培训课程(1)
  15. React(Js)学习
  16. 为Halide安装opencl支持
  17. leetcode 507 完美数
  18. 记录JDK1.8 List 转 Map 的时候遇到的坑
  19. iOS获取UDID的方法
  20. Comparator 接口中方法里面的 (ComparatorT Serializable) 是什么意思?

热门文章

  1. 敏捷冲刺每日报告——Day5
  2. AndroidStudio工具将Module项目导出成Jar和arr库
  3. JavaScript push(),join() 函数
  4. KindEditor 4 输入框限定字数
  5. JS----JavaScript中数组扁平化
  6. 网络安装LINUX系统原理,PXE网络引导系统自动化安装CentOS7
  7. JS数组reduce()方法
  8. WAMPSerrver集成环境的下载安装
  9. NATAPP.CN 内网穿透教程
  10. RabbitMQ code=200, text=Goodbye比较萌新的问题大佬绕道,乌拉~!