首页 > 编程教程 > PHP > 正文

php获取CPU使用情况信息

2019-03-08 PHP集中营 gramer 点击: 评论
使用getrusage()获取CPU使用情况注意:该方法在windows下不可用示例1:<?phpprint_r(getrusage()); * 输出Array([ru_oublock] => 0

天晟网 小编在整理编程教程 > PHP > 看到php获取CPU使用情况信息 ,下面是小编45为您找到的37942相关内容,希望45对您有帮助。

使用getrusage()获取CPU使用情况
注意:该方法在windows下不可用
 
示例1:
<?php
print_r(getrusage());
/* 输出
Array
 (
 [ru_oublock] => 0   //ru_oublock: 块输出操作
 [ru_inblock] => 0   //ru_inblock: 块输入操作
 [ru_msgsnd] => 2   //ru_msgsnd: 发送的message
 [ru_msgrcv] => 3   //ru_msgrcv: 收到的message
 [ru_maxrss] => 12692   //ru_maxrss: 最大驻留集大小
 [ru_ixrss] => 764   //ru_ixrss: 全部共享内存大小
 [ru_idrss] => 3864   //ru_idrss:全部非共享内存大小
 [ru_minflt] => 94   //ru_minflt: 页回收
 [ru_majflt] => 0   //ru_majflt: 页失效
 [ru_nsignals] => 1   //ru_nsignals: 收到的信号
 [ru_nvcsw] => 67   //ru_nvcsw: 主动上下文切换
 [ru_nivcsw] => 4   //ru_nivcsw: 被动上下文切换
 [ru_nswap] => 0   //ru_nswap: 交换区
 [ru_utime.tv_usec] => 0   //ru_utime.tv_usec: 用户态时间 (microseconds)
 [ru_utime.tv_sec] => 0   //ru_utime.tv_sec: 用户态时间(seconds)
 [ru_stime.tv_usec] => 6269   //ru_stime.tv_usec: 系统内核时间 (microseconds)
 [ru_stime.tv_sec] => 0   //ru_stime.tv_sec: 系统内核时间(seconds)
 )
*/
?>
 
示例2:
要查看你的脚本消耗了多少CPU,我们需要看看“用户态的时间”和“系统内核时间”的值。秒和微秒部分是分别提供的,您可以把微秒值除以100万,并把它添加到秒的值后,可以得到有小数部分的秒数。
<?php
// sleep for 3 seconds (non-busy)
 sleep(3);
$data = getrusage();
 echo "User time: ".
 ($data['ru_utime.tv_sec'] +
 $data['ru_utime.tv_usec'] / 1000000);
 echo "System time: ".
 ($data['ru_stime.tv_sec'] +
 $data['ru_stime.tv_usec'] / 1000000);
/* 输出
User time: 0.011552
 System time: 0
*/
?>
sleep是不占用系统时间的,我们看如下示例:
<?php
// loop 10 million times (busy)
 for($i=0;$i<10000000;$i++) {
}
$data = getrusage();
 echo "User time: ".
 ($data['ru_utime.tv_sec'] +
 $data['ru_utime.tv_usec'] / 1000000);
 echo "System time: ".
 ($data['ru_stime.tv_sec'] +
 $data['ru_stime.tv_usec'] / 1000000);
/* 输出
User time: 1.424592
System time: 0.004204
*/
?>
这花了大约14秒的CPU时间,几乎所有的都是用户的时间,因为没有系统调用。
系统时间是CPU花费在系统调用上的上执行内核指令的时间。看如下示例:
<?php
$start = microtime(true);
// keep calling microtime for about 3 seconds
 while(microtime(true) – $start < 3) {
}
$data = getrusage();
 echo "User time: ".
 ($data['ru_utime.tv_sec'] +
 $data['ru_utime.tv_usec'] / 1000000);
 echo "System time: ".
 ($data['ru_stime.tv_sec'] +
 $data['ru_stime.tv_usec'] / 1000000);
/* 输出
User time: 1.088171
System time: 1.675315
*/
?>
我们看到上面这个示例更耗CPU。

转载文章请标明来自天晟网 - Timsion.com > 编程教程 > PHP >
标题:php获取CPU使用情况信息
网址:http://www.timsion.com/php/37942.html

上一篇:php获取内存使用信息
下一篇:php获取系统常量

免责声明:以上内容来自互联网和用户投稿,不代表本站的观点和立场,版权归原作者所有,如有侵权,请与我们联系。