epoll 和 kqueue 之间有什么主要的性能差异吗?
我的开发机器是MacBook(当然有kqueue)。然而,在生产中我们运行 Linux(当然使用 epoll)。显然,要了解代码的性能特征,我需要使用 epoll 运行它。也就是说,我在 kqueue 下看到的性能与我在 epoll 下看到的性能相当接近吗?或者是否存在性能可能显着不同的情况?在大多数情况下,kqueue 和 epoll 在性能方面似乎非常相似,但我还没有真正进行过非常彻底的测试。
如果有什么不同的话,我在 Python 中使用龙卷风。
My development machine is a MacBook (which of course has kqueue). However, in production we're running Linux (which of course uses epoll). Obviously, to know the performance characteristics of my code I need to run it using epoll. That said, is performance that I see under kqueue a decent approximation of what I'll see with epoll? Or are there any situations where performance may be significantly different? For the most part, it seems that kqueue and epoll are pretty much similar in terms of performance, but I haven't really done very thorough testing.
If it makes a difference, I'm using tornado in Python.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据伯克利大学的说法,kqueue 优于 epoll,主要是因为 epoll 不支持在单个系统调用中进行多个兴趣更新,而 kqueue 可以使用 kevent() 来做到这一点。
还有一篇技术论文介绍了两者之间的差异和性能比较。
http://www.eecs.berkeley。 edu/~sangjin/2012/12/21/epoll-vs-kqueue.html
kqueue outperforms epoll according to Berkeley University mainly because epoll does not support multiple interest updates in a single system call, while kqueue can do that using kevent().
There is a technical paper on the differences between the 2 and performance comparison also.
http://www.eecs.berkeley.edu/~sangjin/2012/12/21/epoll-vs-kqueue.html
http://www.daemonforums.org/showthread.php?t=2124
http://www.daemonforums.org/showthread.php?t=2124