sleep 时间段不占脚本执行时间

突发好奇心 PHP内置方法 sleep() 会不会占用脚本执行时间

手动做了下测试,结果如下:

1. 不用sleep做测试

先设置一下最大执行时间为2秒,方便测试。

<?php
ini_set('max_execution_time','2');

for ($i=0; $i < 1000000000; $i++) {
    if (0 == $i%100) {
        echo "No. {$i}\n";
    }
}

测试结果

sleep 时间段不占脚本执行时间
感官上运行时间是超出了2秒的,疑惑。

2. 用sleep做测试

代码如下

<?php
ini_set('max_execution_time','2');

for ($i=0; $i < 1000000000; $i++) {
    if (0 == $i%100) {
        echo "No. {$i}\n";
        sleep(2);
    }
}

结果运行了很长时间也没出现超时。

得出个不太严谨的结论:不会占用执行时间。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2

我试了下,这个时间应该指的是 100% CPU 的时间,输出文字时,CPU 不高,所以从时间上看大于 2 秒,实际上 CPU 只花了 2秒 CPU 时间。

3年前 评论
learnner (楼主) 3年前

试了 usleep(1)。加上去,原本能输出180万,加上去只能输出15万 :see_no_evil: usleep(1000) 3万

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!