2

大家好,我有一个奇怪的问题,

我有一个在 Centos 5.x 上运行的 cli php 脚本,它使用 usleep(有时 1 秒,有时 2 秒,有时 100 毫秒,这取决于)如果需要一些等待,但我注意到它一旦在 usleep() 上似乎使用大约 40% 的空闲 CPU:

Cpu(s):  5.3%us, 21.3%sy,  0.0%ni, 57.2%id,  0.0%wa,  0.0%hi,  0.0%si, 16.1%st

有任何想法吗 ?
干杯

4

2 回答 2

4

对于我来说,这不会发生在一个非常简单的测试用例中。在您的系统上尝试以下操作,看看您是否仍然获得过多的 CPU 时间。

脚本 test.php:

<?php
for ($n=0;$n<1000;$n++)
{
  usleep(10);
}
?>

然后在命令行运行:time php test.php

我的结果如下:

[ar@arctic ~]$ cat /etc/redhat-release 
CentOS release 5.2 (Final)
[ar@arctic ~]$ time php test.php 

real    0m1.020s
user    0m0.013s
sys     0m0.006s

您可以看到用户和系统时间与实际(或经过的)时间相比非常非常小。即 CPU 利用率非常低。

于 2010-03-25T12:36:24.797 回答
3

在 Windows 系统下,如果您不将脚本执行的时间限制设置为 0 set_time_limit(0);

于 2010-03-25T12:11:46.103 回答