时间:2016-11-17来源:本站原创作者:佚名
发条闹钟

?

80后的小时候还没有电子表,家里能有的就是发条闹钟,上紧发条以后闹钟就开始“滴答”,每“滴答”一下就是人类的1秒。

我们把时间分成一天4小时,每天秒,无论我们是忙还是闲我们都在一声声“滴答”中度过和成长,直到电子表和后来的手机盛行,我已经很多年没有听到这么清晰的“滴答”声。

计算机的计时器

计算机里也有一个类似的“发条闹钟”,起初每一个“滴答”是1/秒,后来是1/50秒,现在的系统普遍是1/0秒。我们可以简单的理解为,一个滴答的时间越短暂,计算机对CPU效能利用的越紧凑。

#getconfCLK_TCK

CLK_TCK是用户进程时钟代表1/秒。这1/秒可以被称为一个“滴答”,你可以认为计算机里面有一块“发条闹钟”(不止一块),时间以1/秒的“滴答”飞逝。

进程滴答

一个进程诞生的时候它的“滴答”计数是正整数0,随着程序的运行,时间的迁移,在进程的信息里会累积“滴答”的数量,每一个“滴答”都代表着CPU提供给当前进程1/秒的时间,所以一个进程当前的“滴答”计数是多少,就表达了它消耗了多少的CPU。

在术语中我们管“滴答”叫Tick,“滴答”的总数称作“jiffies”。

占用与空闲

一个人每天有4小时,我们以1秒的“滴答”来计算时间,我们大概有8个小时在工作,1个小时在进餐,8个小时在休息,剩下的碎片时间在看手机或者简短的休息。

?

程序也是一样的,一个程序的运行最小的时间单位是1/秒,一个用时秒完成工作的程序,在微观的世界里,就如同人一样,也是走走停停,有时候忙碌(被占用),有时候空闲,忙碌的时候CPU被占用,每次被占用的时间是1/秒,空闲的时候并没有消耗CPU。

只不过我们大多数时候只关心了结果,只看到了程序运行的总时间,也就是那个秒钟,严格意义上来说,执行了秒,并不能等同于程序占用CPU就高,要看空闲率(空闲与总时长的比值),空闲率越低,CPU的消耗就越多,空闲率越大CPU的消耗就越少。

获取进程滴答

我们无法通过PHP的标准函数获取当前进程的滴答数(ticks),但是我们可以通过linux系统下的/proc/{$pid}/stat文件获取到当前进程的信息,在这个信息里保存了四个数字,我们把这四个数字加到一起就是当前进程的滴答数。

functionstat_get_usage(){$pid=getmypid();$path=/proc/.$pid./stat;$info=file_get_contents($path);$stat=array();sscanf($info,%d%s%c%d%d%d%d%d%u%u%u%u%u%u%u%d%d%d%d%d0%u%u%d%u%u%u%u%u%u%u%u%u%u%u%u%u%d%d%u%u%u%u%d\n,$stat[pid],$stat[t







































得了白癜风在北京哪家医院能治好
白癜风有效的治疗方法

转载请注明原文网址:http://www.coolofsoul.com/phpkf/12228.html

------分隔线----------------------------