我的开发机器是MacBook(当然有kqueue)。然而,在生产中我们正在运行Linux(当然使用epoll)。显然,要知道我的代码的性能特点,我需要使用epoll运行它。这就是说,我在kqueue下看到的表现与我在epoll中看到的相似吗?还是有什么情况下性能可能会有很大的不同?在大多数情况下,似乎kqueue和epoll在性能方面非常相似,但我没有真正做过非常彻底的测试。epoll和kqueue之间有什么主要的性能差异吗?
如果它有所作为,我在Python中使用龙卷风。
我的开发机器是MacBook(当然有kqueue)。然而,在生产中我们正在运行Linux(当然使用epoll)。显然,要知道我的代码的性能特点,我需要使用epoll运行它。这就是说,我在kqueue下看到的表现与我在epoll中看到的相似吗?还是有什么情况下性能可能会有很大的不同?在大多数情况下,似乎kqueue和epoll在性能方面非常相似,但我没有真正做过非常彻底的测试。epoll和kqueue之间有什么主要的性能差异吗?
如果它有所作为,我在Python中使用龙卷风。
这并不完全回答我的问题。在基准测试的情况下,看起来性能大致相同。但我主要问的是两者之间是否存在显着差异。是否有任何边缘情况下,其中一个表现与另一个表现不同? – 2010-08-29 19:37:44
的kqueue根据大学伯克利分校优于epoll的,主要是因为epoll的不支持在单个系统调用多个兴趣的更新,而kqueue的可以做到这一点使用KEVENT()。
还有关于2和性能比较之间的差异的技术论文。
http://www.eecs.berkeley.edu/~sangjin/2012/12/21/epoll-vs-kqueue.html
我相信你会得到一些答案,但我的建议是找出你自己!我自己使用Macbook,我会做的是将Linux作为虚拟机安装在VMWare Fusion中,并在那里实现epoll。为了保持比较的公平性,我会做第二台虚拟机作为FreeBSD并用它来测试kqueue。 – 2011-04-23 00:48:15