io特别密集时为什么 epoll 效率不高。原因是:
-
连接密集(短连接特别多),使用epoll的话,每一次连接需要发生epoll_wait->accpet->epoll_ctl调用,而使用select只需要select->accpet,减少了一次系统调用。
-
读写密集的话,如果收到数据,我们需要响应数据的话,使用epoll的情况下, read 完后也需要epoll_ctl 加入写事件,相比select多了一次系统调用
所以 在连接数多且不活跃下,epoll比较高效。连接数少且都很活跃下,select比较高效。