只要在死循环中增加sleep即可。

<?php
while(true){//CPU占用率高
    //TODO
}

while(true){//改进后降低CPU占用率
    //TODO
    sleep(1);
}

cpu.png

适应于时效性不是非常即时,要精确到微秒级别的应用。

因为在本机测试1s中,可以处理1亿次循环

相当于10纳秒处理1个循环

sleep(1) 会休眠1000纳秒1000纳秒能处理100个循环,这样就等于处理1个循环,则会让出100个循环给其它应用。近似于节省了99%的cpu

Last modification:May 20, 2021
如果觉得我的文章对你有用,请随意赞赏