(1) I/O 模型的选择,
epoll就一定好吗? 那是肯定的。
epoll最有用的就是ET模式,适合于那种有大量连接,但是有数据的连接比较少的情况,
如果你有10000个连接,但是很不幸,这10000个连接全部都有数据,你还是得遍历一把进行处理,( 这里对ET模式下怎么处理数据就不讨论了)。
这个和select, poll有什么区别。
epoll还有比select, poll先进得地方, 就在于将fd得列表维护在内核中, 而select, poll是调用一次,传递一次, 这点epoll领先是没得说得。
最主要还是epoll系统调用的实现方式采用事件方式,比poll, select的轮询方式强的多
(2) 使用非堵塞
做为网络服务器, 堵塞I/O一般情况下不予考虑
(3) 减少I/O操作和无谓的系统调用
比如利用writev一次性写入多个数据, 减少write调用的次数.
或者使用零拷贝的sendfile,tee等
(4) tcp是双工的阅读全文>
发表于 @ 2009年06月03日 11:53:00|评论(loading...)|举报|收藏