epoll与kqueue之间有显著的性能差异吗?

4 投票
2 回答
3276 浏览
提问于 2025-04-16 03:27

我的开发机器是MacBook(当然它支持kqueue)。但是在生产环境中,我们使用的是Linux(它使用epoll)。显然,为了了解我代码的性能特点,我需要在epoll上运行它。也就是说,我在kqueue下看到的性能能不能大致反映我在epoll下的表现?或者有没有什么情况会导致性能差别很大?大体上看,kqueue和epoll在性能上似乎差不多,但我还没有进行过非常深入的测试。

如果有影响的话,我是在Python中使用tornado。

2 个回答

4

这是一个链接,指向一个讨论论坛的帖子,网址是 http://www.daemonforums.org/showthread.php?t=2124。在这个帖子里,大家可能在讨论一些技术问题或者分享经验。

5

根据伯克利大学的研究,kqueue的性能优于epoll,主要是因为epoll在一次系统调用中不能同时处理多个关注的事件,而kqueue可以通过kevent()来做到这一点。

还有一篇技术论文详细讲解了这两者之间的区别和性能比较。

http://www.eecs.berkeley.edu/~sangjin/2012/12/21/epoll-vs-kqueue.html

撰写回答