使用限制:
select关注的文件描述符最多为1024,而poll和epoll关注的文件描述符可以达到系统允许打开的最大值。
使用效率:
select、poll每次都要将文件描述符从用户态转化为内核态,而epoll可以直接从内核读取、更加高效。
select、poll每次都要将所有的文件描述符返回,时间复杂度为O(n)。而epoll只将就绪的文件描述符返回,时间复杂度为O(1),因为epoll有events参数。
select、poll只支持LT模式,而epoll支持高效的ET模式。
内核效率:
select和epoll采取轮询的方式,时间复杂度为O(n)。epoll采取回调的方式,时间复杂度为O(1)。