首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libuv与原始epoll或IOCP

libuv与原始epoll或IOCP
EN

Stack Overflow用户
提问于 2016-05-14 03:15:44
回答 1查看 3.4K关注 0票数 1

我正在为一个消息库编写IO核心,并考虑libuv与在linux上使用原始epoll和在windows上使用IOCP (最终还有其他,solaris事件等)。我喜欢libuv的可移植性,我正在观察它的性能。

epoll和IOCP允许多个线程直接等待IO事件,由内核进行调度。可能比用户空间调度更有效,尽管我没有任何数字。

libuv (根据我的阅读)有一个线程-usafe事件循环,但我可以实现一个领导者-跟随者线程池。我的意思是(一次)一个线程是等待事件的“领导者”。当领导者得到一个事件时,它发出信号,表明跟随者应该接管领导者。前领导者处理事件,然后成为追随者。

我的希望是,假设libuv得到了有效的实现,它的性能应该接近原始多线程epoll/IOCP。我会自己测量,但我想听听任何有经验的人的意见。

EN

回答 1

Stack Overflow用户

发布于 2016-05-22 17:51:58

免责声明:我是libuv的维护者之一。

我建议你从libuv开始。如果仅仅是因为它包含了已经处理过的大量角落案例,以及大量的内置知识。如果您想要支持其他平台,您最终将以某种方式重新发明libuv :-)

在使用libuv构建了服务器原型之后,运行一些基准测试,看看瓶颈在哪里。根据您正在编写的服务器的类型,您可能需要/想要一个多线程事件循环,而libuv并不需要,但libuv可能对您来说已经足够好了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37217724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档