墙上时钟时间 ,用户cpu时间 ,系统cpu时间的理解
2013-09-03 09:16:25
分类: LINUX
时钟时间(墙上时钟时间
wall clock time):从进程
从开始运行到结束
,时钟走过的时间,这其中
包含了进程在阻塞和等待状态的时间
。
用户CPU时间:就是用户的进程获得了CPU资源以后,在CPU在用户态执行的时间。
系统CPU时间:用户进程获得了CPU资源以后,在CPU内核态的执行时间。
用户CPU时间:就是用户的进程获得了CPU资源以后,在CPU在用户态执行的时间。
系统CPU时间:用户进程获得了CPU资源以后,在CPU内核态的执行时间。
进程的三种状态为阻塞、就绪、运行。
时钟时间 = 阻塞时间 + 就绪时间 +运行时间
运行时间=用户CPU时间+系统CPU时间
用户CPU时间 = 运行状态下用户空间的时间
系统CPU时间 = 运行状态下系统空间的时间。
系统CPU时间 = 运行状态下系统空间的时间。
==================================================================================================================
转自:http://www.01happy.com/linux-process-time/
在linux下进行编程时,可能会涉及度量进程的执行时间。linux下进程的时间值分三种:
时钟时间(real time):指进程从开始执行到结束,实际执行的时间
用户CPU时间(user CPU time):指进程中执行用户指令所用的时间,也包括子进程。
系统CPU时间(system CPU time):指为进程执行内核程序所经历的时间,例如调用read和write内核方法时,消耗的时间就计入系统CPU时间。
在linux下,可以使用time命令来查看程序执行时这三种时间值的消耗。笔者写了一个测试程序,来演示这一个过程:
1
2
3
4
5
6
7
8
9
10
11
|
#include <stdio.h>
int
main(
void
)
{
int
i;
while
(i <= 10E7) {
i++;
}
return
1;
}
|
程序非常简单了,就不说明了,编译成二进制文件a.out,使用time命令执行,在笔者的电脑上输入如下信息:
可以在执行程序的时候加上time :
$ time ./a.out
real 0m0.349s
user 0m0.340s
sys 0m0.004s
其中real表示时钟时间,user表示用户CPU时间,sys表示系统CPU时间。time命令也可以用于系统的命令,如time ls、time ps等等。