Libevent(单线程)C语言.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Libevent(单线程)C语言.doc

Libevent (单线程) C语言 200客户端 CPU 88.1% Libevent 4+1线程(event loop per thread) C语言 200客户端 TPS如下图 CPU占用如下图 400客户端 1000客户端 EPOLL(多worker线程,多个线程共享1个epoll,snapshot) C语言 CPU 135.6% 400客户端 1000客户端 Mina2(JAVA) 200客户端 CPU 254.3% 400客户端 1000客户端 数据汇总: 由以上两图可以得出以下结论: 1. 从TPS(每秒处理的请求数据上来看),三者没有本质差异,基于JAVA语言的MINA2框架在TPS上绝对不输于C语言EPOLL和LIBEVENT。 2. EPOLL无论在TPS或者CPU占用率方面都占优势。这是预料之中,毕竟LIBEVENT也好,MINA2也好,在LINUX上面,最终使用也是EPOLL机制,所以只要不犯低级错误,原生的EPOLL在性能和CPU消耗方面必然会占优势。 3. LIBEVENT和MINA2都在EPOLL基础上做了大量的封装工作,比如LIBEVENT的buffer event,Mina2的codec,不可避免造成额外的CPU开销。其中基于java语言的mina2在CPU上开销明显大于C语言的其它方案。甚至有接近2倍的差异。 4. 我们在开发功能复杂的服务器应用之时,一些基本的工作必须要做,比如buffer,比如codec,这些工作我们自己做,或者交由libevent或者mina2来做,始终都要去做,是避免不了的,而且我们自己去实现,本身效率如何也未知。所以我们才会选择使用更上层的封闭,一方面减少工作量,另一方面,避免无关的错误发生。从这一点出发,在做技术选型之时,综合取舍,业务简单但对性能极端要求的场景,可以直接用C语言和EPOLL,业务复杂度高工程较大的需求,可以选用JAVA语言和MINA2。

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档