最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

swoole定时器是单开的进程吗

来源:动视网 责编:小采 时间:2020-11-03 18:23:06
文档

swoole定时器是单开的进程吗

swoole定时器是单开的进程吗:毫秒精度的定时器。底层基于epoll_wait和setitimer实现,数据结构使用最小堆,可支持添加大量定时器。在同步进程中使用setitimer和信号实现,如Manager和TaskWorker进程 (推荐学习: swoole视频教程)在异步进程中使用epoll_wait/kevent/
推荐度:
导读swoole定时器是单开的进程吗:毫秒精度的定时器。底层基于epoll_wait和setitimer实现,数据结构使用最小堆,可支持添加大量定时器。在同步进程中使用setitimer和信号实现,如Manager和TaskWorker进程 (推荐学习: swoole视频教程)在异步进程中使用epoll_wait/kevent/


毫秒精度的定时器。底层基于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定时器是单开的进程吗

swoole定时器是单开的进程吗:毫秒精度的定时器。底层基于epoll_wait和setitimer实现,数据结构使用最小堆,可支持添加大量定时器。在同步进程中使用setitimer和信号实现,如Manager和TaskWorker进程 (推荐学习: swoole视频教程)在异步进程中使用epoll_wait/kevent/
推荐度:
标签: 程序 进程 swoole
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top