PHP教程:9个实用的PHP函数
ults
ru_nsignals: signals received
ru_nvcsw: voluntary context switches
ru_nivcsw: involuntary context switches
ru_nswap: swaps
ru_utime.tv_usec: user time used (microseconds)
ru_utime.tv_sec: user time used (seconds)
ru_stime.tv_usec: system time used (microseconds)
ru_stime.tv_sec: system time used (seconds)
要知道脚本消耗多少 CPU 功率,我们需要看看 ‘user time’ 和 ’system time’ 两个参数的值。秒和微秒部分默认是单独提供的。你可以除以 100 万微秒,并加上秒的参数值,得到一个十进制的总秒数。让我们来看一个例子: // 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); /* prints User time: 0.011552 System time: 0 */ 尽管脚本运行用了大约 3 秒钟,CPU 使用率却非常非常低。因为在睡眠运行的过程中,该脚本实际上不消耗 CPU 资源。还有许多其他的任务,可能需要一段时间,但不占用类似等待磁盘操作等 CPU 时间。因此正如你所看到的,CPU 使用率和运行时间的实际长度并不总是相同的。下面是一个例子: // 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); /* prints User time: 1.424592 System time: 0.004204 */ 这花了大约 1.4 秒的 CPU 时间,但几乎都是用户时间,因为没有系统调用。系统时间是指花费在执行程序的系统调用时的 CPU 开销。下面是一个例子: $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); /* prints User time: 1.088171 System time: 1 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |