国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Workerman定時器精度問題

slowbro
<?php
use Workerman\Lib\Timer;
use Workerman\Worker;

require_once "./vendor/autoload.php";

$worker = new Worker();
$worker->onWorkerStart = function($worker){
    Timer::add(0.001,function() use ($worker){
        echo microtime(true).PHP_EOL;
    });
};
Worker::runAll();

這段代碼在ubuntu上跑打印出來的是有4毫秒的時間差,但是在centos上能精確到1毫秒,兩個環(huán)境都是安裝了event擴展,請問大佬們這是什么回事呢?系統(tǒng)的定時器精度問題嗎?十分感謝;

2289 1 0
1個回答

walkor 打賞

有誤差正常的,cpu分片、進程調(diào)度算法、系統(tǒng)負載、程序代碼都會影響。比如當(dāng)cpu忙于其它任務(wù)時,來不及觸發(fā)定時器就很有可能造成定時器不準。

  • slowbro 2020-10-30

    很是奇怪,同段代碼試了macos、centos、ubuntu這三個系統(tǒng),Ubuntu的只能精確定時4毫秒,其他兩個系統(tǒng)可以精確定時1毫秒;而且如果把Ubuntu環(huán)境的event擴展關(guān)掉,使用Select類的話,定時器就能精確定時1毫秒,也不知道是不是Ubuntu需要開啟什么

年代過于久遠,無法發(fā)表回答
??