旗下导航:搜·么
当前位置:网站首页 > PHP框架 > Swoole > 正文

swoole定时器是单开的历程吗【swoole】,swoole

作者:搜搜PHP网发布时间:2019-12-13分类:Swoole浏览:110


导读:毫秒精度的定时器。底层基于epoll_wait和setitimer完成,数据结构运用最小堆,可支撑增加大批定时器。在同步历程中运用setitimer和信号完成,如Man...

毫秒精度的定时器。底层基于epoll_wait和setitimer完成,数据结构运用最小堆,可支撑增加大批定时器。

在同步历程中运用setitimer和信号完成,如Manager和TaskWorker历程 (引荐进修: swoole视频教程)

在异步历程中运用epoll_wait/kevent/poll/select超时时候完成

机能

底层运用最小堆数据结构完成定时器,定时器的增加和删除,悉数为内存操纵,因而机能是异常高的。

官方的基准测试剧本 https://github.com/swoole/swoole-src/blob/master/benchmark/timer.php 中,增加或删除10万个随机时候的定时器耗时为0.08s摆布。

~/workspace/swoole/benchmark$ php timer.php
add 100000 timer :0.091133117675781s
del 100000 timer :0.084658145904541s

定时器是内存操纵,无IO斲丧

差别

Timer与PHP自身的pcntl_alarm是差别的。pcntl_alarm是基于时钟信号 + tick函数完成存在一些缺点:

最大仅支撑到秒,而Timer能够到毫秒级别

不支撑同时设定多个定时器顺序

pcntl_alarm依靠declare(ticks = 1),机能很差

以上就是swoole定时器是单开的历程吗的细致内容,更多请关注ki4网别的相干文章!

标签:swoole