`
sealbird
  • 浏览: 584595 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

muduo 与 libevent2 吞吐量对比

阅读更多
http://blog.csdn.net/Solstice/archive/2010/09/05/5864889.aspx

muduo 与 libevent2 吞吐量对比 收藏 此文于2010-09-06被推荐到CSDN首页
如何被推荐?
libevent 是一款非常好用的 C 语言网络库,它也采用 Reactor 模型,正好可以与 muduo 做一对比。

本文用 ping pong 测试来对比 muduo 和 libevent2 的吞吐量,测试结果表明 muduo 吞吐量平均比 libevent2 高 18% 以上,个别情况达到 70%。

测试对象
libevent 2.0.6-rc (http://monkey.org/~provos/libevent-2.0.6-rc.tar.gz)
muduo 0.1.1 (http://muduo.googlecode.com/files/muduo-0.1.1-alpha.tar.gz) SHA1 Checksum: a446ea8a22915f439063d2bc52eb2dc4b9caf92d
测试环境与测试方法
测试环境与前文《muduo 与 boost asio 吞吐量对比》相同。

我自己编写了 libevent2 的 ping pong 测试代码,地址在 http://github.com/chenshuo/recipes/tree/master/pingpong/libevent/ 。由于这个测试代码没有使用多线程,所以本次测试只对比单线程下的性能。

测试内容为:客户端与服务器运行在同一台机器,均为单线程,测试并发连接数为 1/10/100/1000/10000 时的吞吐量。

在同一台机器测试吞吐量的原因:

现在的 CPU 很快,即便是单线程单 TCP 连接也能把 Gigabit 以太网的带宽跑满。如果用两台机器,所有的吞吐量测试结果都将是 100 MiB/s,失去了对比的意义。(或许可以对比哪个库占的 CPU 少。)
在同一台机器上测试,可以在 CPU 资源相同的情况下,单纯对比网络库的效率。也就是说单线程下,服务端和客户端各占满 1 个 CPU,比较哪个库的吞吐量高。
测试结果
单线程吞吐量测试,数字越大越好:

[img] http://hi.csdn.net/attachment/201009/5/0_1283683377OZNk.gif [/img]

以上结果让人大跌眼镜,muduo 居然比 libevent 快 70%!跟踪 libevent2 的源代码发现,它每次最多从 socket 读取 4096 字节的数据 (证据在 buffer.c 的 evbuffer_read() 函数),怪不得吞吐量比 muduo 小很多。因为在这一测试中,muduo 每次读取 16384 字节,系统调用的性价比较高。

buffer.c:#define EVBUFFER_MAX_READ      4096

为了公平起见,我再测了一次,这回两个库都发送 4096 字节的消息。

[img] http://hi.csdn.net/attachment/201009/5/0_1283683381mVgW.gif [/img]

测试结果表明 muduo 吞吐量平均比 libevent2 高 18% 以上。

讨论
由于 libevent2 每次最多从网络读取 4096 字节,大大限制了它的吞吐量。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Solstice/archive/2010/09/05/5864889.aspx
分享到:
评论

相关推荐

    中国光大银行信用卡网上商城系统设计与实现_杨木铎.caj

    中国光大银行信用卡网上商城系统设计与实现_杨木铎

    muduo 木铎

    《muduo 木铎:探索中国开源的多线程编程库》 “muduo”是一个由中国开发者编写的开源库,专为多线程编程设计。它以其高效、稳定和易于使用的特性,在国内的软件开发领域中逐渐受到广泛关注。在深入理解muduo之前,...

    人教版高中语文(选修)先秦诸子选读各课原文.doc

    7. 与隐士的对比: 孔子与楚狂接舆、丈人的交流,反映了他与避世隐居者的不同观点。孔子认为不应逃避现实,而应积极参与改变社会。 8. 对待批评的态度: 当叔孙武叔诋毁孔子时,子贡反驳,指出孔子的道德地位无人...

    河南省鹤壁市淇滨高级中学2020学年高二语文上学期第一次周考试题(1).doc

    同时,它们也与稀少与丰盛的对立相关联,进一步强调自然与文化的对比。 5. 音响工具的寓意:木铎和木鼓等工具传达黑暗与光明的对立,强化了自然与文化等对立结构的表达。 6. 仪式时间的统一:寒食节的时间在古代...

    天下有道丘不与易也.ppt

    这两个故事揭示了儒家积极入世与道家避世哲学的对比,反映了孔子坚持社会改革的坚定信念和人文关怀,同时也展示了他对于社会责任的深刻理解。这一精神至今仍对后世有着深远的影响,鼓励人们在面对困境时保持勇气和...

    教(学)案-天下有道-丘也不与易也.doc

    2. 孔子及其弟子:孔子是中国历史上著名的教育家和哲学家,被后世尊称为“至圣先师”。文中提到了几位重要的弟子,包括颜回、子贡和子路,他们的事迹和特点反映了孔子教育理念的实践。颜回以德行高尚和好学闻名,...

    广西南宁市第八中学2020学年高二语文4月份段考试题.doc

    2. 语文基础知识:试题涵盖了汉字读音、字形辨析、成语运用等基础语文知识,例如“木铎”的正确读音是duó,“慨然”的读音是kuì,“揠苗助长”的“揠”应读yà等。 3. 成语运用与错别字辨析:题目中涉及到成语的...

    教案天下有道丘也不与易也.doc

    - 分析人物语言,领会孔子的社会道义精神:孔子不仅是儒家学派的创始人,也是道德与智慧的象征,他的言论体现了对社会道义的重视和勇于担当的责任感。 2. **教学重点和难点**: - 重点在于理解和运用《论语》中...

    高中语文《先秦诸子选读》_第一单元《论语》选读电子版课文.docx

    而"木铎"是古代宣告政令的工具,这里寓意孔子被看作是传播道德教化的使者,表明他在无道的社会中承担着启蒙民众的责任。 接着,长沮、桀溺的故事揭示了孔子与两位隐士的对话,反映出他对现实世界的执着与无奈。面对...

    湖北省咸丰县2020学年高一语文10月月考试题.doc

    1. 中国古代新闻传播的起源:最早可追溯至夏、商、周时期的遒人,他们摇动木铎在各地巡行,宣达政令并进行采风,这是我国新闻事业的原始形态。 2. 唐朝之前的传播方式:主要为非文字载体,如拟态、手势,随着社会...

    普宁市一中2016-2017年高二语文第二次月考试题及答案精选.doc

    这篇文档主要讨论的是中国古代民间歌谣的采集与传承问题,特别是在汉代的情况。民间歌谣作为民间文学的一种形式,历来丰富多样,但在古代社会往往因其草根性质而不受重视,难以流传。历史上,民间文学的长久流传往往...

    湖北省咸丰县2017_2018学年高一语文10月月考试题

    1. 新闻传播的起源与发展:中国古代的新闻传播可以追溯到夏、商、周时期的“遒人”,他们摇动木铎在各地巡行,宣达政令,这是我国新闻事业的最早形态。新闻传播在唐朝之前主要通过非文字载体进行,如拟态、手势、...

    各工种知识问答题--消防员.docx

    1. 消防工作是一项专门的工作,其历史可以追溯到我国古代周朝时期,当时已有“春秋,以木铎修火禁”的防火措施。 2. 北宋时期,汴京(今开封)设有专门的救火军队,驻守在望火楼下,以快速应对火灾。 3. 火灾具有极...

    陕西省咸阳市_高二语文下学期第一次月考试题无答案 试题.doc

    2. **词语解释**:包括"孝弟(tì)"的"弟",意指弟弟或孝顺父母敬爱兄长;"酒馔(zhuàn)",意指酒食;"木铎(yí)",古代宣布政教法令时,摇动木舌铜铃,此处可能是误读;"不得与(yù)于斯文",意为不能参与这种文化...

    中国新闻史考试要点.pdf

    标题《中国新闻史考试要点.pdf》所涉及的知识点涵盖中国新闻事业发展的历史脉络,重点包括古代至近现代的新闻传播活动、报纸的产生与发展、新闻传播工具的变迁、以及重要的新闻人物和事件。 描述中提到,中国古代在...

    2018_2019学年高中语文第02单元单元检测含解析新人教版必修1

    2. 孔子的历史观与史家身份:孔子对于历史持有严谨的态度,他的历史观和著述态度被认为比现代人更为科学。他的广泛阅读和实地考察使他具备了丰富的知识和深刻的洞察力,使他有资格评论历史人物和事件。然而,由于...

    数字信号处理仿真实验报告

    数字信号处理是研究用数字方法对信号进行分析、变换、滤波、检测、调制、解调以及快速算法的一门技术学科。...随着数字电路与系统技术以及计算机技术的发展,数字信号处理技术也相应地得到发展,其应用领域十分广泛。

    自动控制原理上机仿真实验报告

    传递函数是描述系统动态特性的数学表达,反映了输入信号与输出信号之间的关系。`tf()`函数用于直接建立传递函数,而`zpk()`则用于构建零极点增益模型。这两个函数可以互相转换,以适应不同的分析需求。 实验内容还...

Global site tag (gtag.js) - Google Analytics