Libevent和Select

  • Libevent是不是一定会比Select好?
  • 是不是一定要安装Libevent扩展?
Select是什么?

Select是一个轮询机制.

Select是怎么工作的

比如监听着一千个链接, 哪个链接有动态变化, Select需要遍历一边这一千个链接才能找到. 这就叫轮询机制.

Libevent是什么?

Libevent是PHP的扩展, 一个事件机制. 采用epoll等高效模型.

Libevent是怎么工作的

比如监听着一千个链接, 哪个链接有动态变化, Libevent能立马找到, 因为是事件监听机制.

Select和Libevent比较
  • 同时在线的链接数较少(几个, 几十个)的时候, Select明显优于Libevent.
  • 同时在线的链接数较多的时候, Libevent优于Select, 并且随着链接数越来越多, Libevent的优势越突出.
Select的致命性

默认情况下, Select只能接受1024个链接. 想要突破这个限制, 需要重新编译PHP. 使用--enable-fd-setsize=2048.

results matching ""

    No results matching ""