PHP sleep()导致高CPU使用率

nic*_*ick 5 php

我正在运行一个主要睡觉的CLI脚本.脚本每10秒左右执行一次.问题是,脚本在睡眠时占用了94%的CPU使用率.

我设置它的方式是:

while(1){
    sleep(10);
    doStuff();
}
Run Code Online (Sandbox Code Playgroud)

虽然这是按预期工作的,但是存在一个明显的问题.在C++/Java中,我可以简单地设置一个可以消除循环问题的计时器.另外,我希望我不需要cron工作.

有没有其他方法可以做到这一点?


更新

显然我的原始脚本(相当大)从未真正进入睡眠模式,因此while循环运行单元化并烧毁CPU周期.对于有同样问题的人,请确保不是您的情况!

Bra*_*rad 3

过去,当我需要将 PHP 脚本设为守护程序时,我使用了此处概述的 PEAR 模块: http ://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/

如果您不想使用 PEAR 模块,您可以检查其源代码并执行类似的操作。

  • 为什么评论这么低 - 不是以秒为单位睡眠 - 10 秒在 CPU 时间中是很长的时间 (2认同)