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
分享到:
相关推荐
中国光大银行信用卡网上商城系统设计与实现_杨木铎
《muduo 木铎:探索中国开源的多线程编程库》 “muduo”是一个由中国开发者编写的开源库,专为多线程编程设计。它以其高效、稳定和易于使用的特性,在国内的软件开发领域中逐渐受到广泛关注。在深入理解muduo之前,...
7. 与隐士的对比: 孔子与楚狂接舆、丈人的交流,反映了他与避世隐居者的不同观点。孔子认为不应逃避现实,而应积极参与改变社会。 8. 对待批评的态度: 当叔孙武叔诋毁孔子时,子贡反驳,指出孔子的道德地位无人...
这两个故事揭示了儒家积极入世与道家避世哲学的对比,反映了孔子坚持社会改革的坚定信念和人文关怀,同时也展示了他对于社会责任的深刻理解。这一精神至今仍对后世有着深远的影响,鼓励人们在面对困境时保持勇气和...
木铎和木鼓等音响工具作为仪式的一部分,传达了黑暗与光明的对立,以及自然与文化的对立。这些传统的仪式不仅是对自然周期的庆祝,也是对社会秩序和文化价值的一种重申。 同时,寒食节的禁食和斋戒在不同文化中体现...
- 分析人物语言,领会孔子的社会道义精神:孔子不仅是儒家学派的创始人,也是道德与智慧的象征,他的言论体现了对社会道义的重视和勇于担当的责任感。 2. **教学重点和难点**: - 重点在于理解和运用《论语》中...
孔子被誉为“木铎”,意即传递天道、道德和智慧的使者。这一称谓突显了孔子在道德教化方面的重要作用和不可替代的地位。在当时,人们视孔子为一种超凡脱俗的存在,他是智慧与道德的化身,是理想人格的典范。 针对...
而"木铎"是古代宣告政令的工具,这里寓意孔子被看作是传播道德教化的使者,表明他在无道的社会中承担着启蒙民众的责任。 接着,长沮、桀溺的故事揭示了孔子与两位隐士的对话,反映出他对现实世界的执着与无奈。面对...
中国古代民间歌谣的采集与传承是一个久远而复杂的话题,涉及到中国古代社会的政治、文化以及文学等多个方面。在汉代,这一传统的采集与传承达到了一个高峰,特别是通过官方渠道的乐府机构,使得不少珍贵的民间歌谣...
1. 新闻传播的起源与发展:中国古代的新闻传播可以追溯到夏、商、周时期的“遒人”,他们摇动木铎在各地巡行,宣达政令,这是我国新闻事业的最早形态。新闻传播在唐朝之前主要通过非文字载体进行,如拟态、手势、...
据《周礼》记载,当时就已经有了防火措施:“春秋,以木铎修火禁”,意即在春秋两季,用木铎来提醒百姓注意防火。到了北宋时期,社会经济和城市规模的发展促使消防工作的形态进一步变化。汴京(即今天的开封)设立了...
2. **词语解释**:包括"孝弟(tì)"的"弟",意指弟弟或孝顺父母敬爱兄长;"酒馔(zhuàn)",意指酒食;"木铎(yí)",古代宣布政教法令时,摇动木舌铜铃,此处可能是误读;"不得与(yù)于斯文",意为不能参与这种文化...
标题《中国新闻史考试要点.pdf》所涉及的知识点涵盖中国新闻事业发展的历史脉络,重点包括古代至近现代的新闻传播活动、报纸的产生与发展、新闻传播工具的变迁、以及重要的新闻人物和事件。 描述中提到,中国古代在...
2. 孔子的历史观与史家身份:孔子对于历史持有严谨的态度,他的历史观和著述态度被认为比现代人更为科学。他的广泛阅读和实地考察使他具备了丰富的知识和深刻的洞察力,使他有资格评论历史人物和事件。然而,由于...
从最早的遒人摇动木铎的原始形态,到清代成熟发达的官报体系,新闻传播的形式和内容在不断地丰富和发展。 夏、商、周时期的遒人是最早的信息传播者,他们通过巡行各地的方式,不仅传达政令,还进行采风,将地方的...
数字信号处理是研究用数字方法对信号进行分析、变换、滤波、检测、调制、解调以及快速算法的一门技术学科。...随着数字电路与系统技术以及计算机技术的发展,数字信号处理技术也相应地得到发展,其应用领域十分广泛。
传递函数是描述系统动态特性的数学表达,反映了输入信号与输出信号之间的关系。`tf()`函数用于直接建立传递函数,而`zpk()`则用于构建零极点增益模型。这两个函数可以互相转换,以适应不同的分析需求。 实验内容还...