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

发布时间:2021-01-26 14:21:45 作者:小新
来源:亿速云 阅读:275

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

推荐阅读:
  1. 如何关闭swoole进程
  2. 杀掉swoole进程的方法

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

swoole

上一篇:如何在Mybatis-plus中利用TableNameHandler实现一个分表功能

下一篇:利用tke-autoscaling-placeholder 怎么实现一个秒级弹性伸缩功能

相关阅读

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

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