CPU time与WALL time
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总时间:
- real < CPU 表明进程为计算密集型(CPU bound),利用多核处理器的并行执行优势
- real ≈ CPU 表明进程为计算密集型,未并行执行
- real > CPU 表明进程为I/O密集型 (I/O bound),多核并行执行优势并不明显
CPU time与WALL time相关推荐
- cpu time和clock time、real time、wall time都是什么?以及在不同语言中如何计算?
概念辨析 CPU time 指的是计算机处理器在执行一个特定程序时花费的时间,也就是程序在处理器上实际运行的时间. Clock time(也称为 wall time 或 real time)指的是程序 ...
- DIY Ruby CPU 分析 Part III
[编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...
- DIY Ruby CPU 分析——Part III
[编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...
- DIY Ruby CPU 分析 Part II
[编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...
- Dottrace 10.0.2 使用心得
开发环境vs2015 软件:JetBrains dotTrace 10.0.2 刚开始不知道怎么下手,多看了一会还有一位仁兄的解释.算是对某个功能小有入门了. 当前会查看某个方法在抓取快照时间它的执行 ...
- Python 和 C/C++ 拓展程序的性能优化
背景 在 MegEngine imperative runtime 的早期开发中,我们面临着一些的性能优化问题.除了一些已知需要重构的地方(早期设计时为了开发效率而牺牲性能的妥协),还存在一些未知的性 ...
- Dottrace跟踪代码执行时间
当自己程序遇到性能问题,比如请求反应缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过长,然后再分析应该怎样解决 ...
- 使用Dottrace跟踪代码执行时间
当自己程序遇到性能问题,比如IIs请求反应缓慢,客户端程序执行缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过 ...
- 一文搞懂JAVA与GO垃圾回收
导语 现代高级编程语言管理内存的方式分为两种:自动和手动.像 C.C++ 等编程语言使用手动管理内存的方式,编写代码过程中需要主动申请或者释放内存:而 PHP.Java 和 Go等语言使用自动的内存 ...
最新文章
- [Scoi2015]小凸玩矩阵
- exit命令的返回值
- Spring Cloud 服务安全连接
- 洛谷 P1027 Car的旅行路线
- JEPaas代码(SQL功能表)通过SQL功能表进行表查询
- 位置指纹法的实现(KNN)
- 深入剖析线程池基本原理以及常见面试题详解
- Video Analysis 相关领域解读之Video Captioning(视频to文字描述)
- 安卓手机qq怎么看密友值_qq密友值在哪看
- python学习笔记2---内置函数
- 我的团长我的团第十六集
- 日常问题(bug)反馈/回复的标准格式
- 让你两分钟明白什么是ERP
- java开发速成班培训课程(1)
- React(Js)学习
- 为Halide安装opencl支持
- leetcode 507 完美数
- 记录JDK1.8 List 转 Map 的时候遇到的坑
- iOS获取UDID的方法
- Comparator 接口中方法里面的 (ComparatorT Serializable) 是什么意思?
热门文章
- 敏捷冲刺每日报告——Day5
- AndroidStudio工具将Module项目导出成Jar和arr库
- JavaScript push(),join() 函数
- KindEditor 4 输入框限定字数
- JS----JavaScript中数组扁平化
- 网络安装LINUX系统原理,PXE网络引导系统自动化安装CentOS7
- JS数组reduce()方法
- WAMPSerrver集成环境的下载安装
- NATAPP.CN 内网穿透教程
- RabbitMQ code=200, text=Goodbye比较萌新的问题大佬绕道,乌拉~!