温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

swoole定时器是不是单开的进程

发布时间:2021-01-26 14:21:45 来源:亿速云 阅读:258 作者:小新 栏目:编程语言

小编给大家分享一下swoole定时器是不是单开的进程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

毫秒精度的定时器。底层基于epoll_wait和setitimer实现,数据结构使用最小堆,可支持添加大量定时器。

在同步进程中使用setitimer和信号实现,如Manager和TaskWorker进程                    

在异步进程中使用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定时器是不是单开的进程”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI