1.select 支持的文件描述符数量太少了(比如说可以监视的socket),默认是1024,虽然可以调整,但是描述符数量越大,效率越低,调整的意义不大。
2.每次调用select ,都要产生拷贝。需要把fdset 从用户态拷贝到内核,需要将fdset备份。每次调用select函数都要将socket集合备份。当次数很大时,就产生了大量的拷贝,大量的开销。
同时在线的大量客户端有事件发生的可能很少,但是每次有事件发生都要遍历fdset。当监视的描述符数量增加时,其效率就会线性下降。