2012.3.5 微博热报:Muduo v.s. nginx & 结对 v.s. 不结对

  • 郑柯

2012 年 3 月 4 日

话题:C++语言 & 开发文化 & 方法

Muduo v.s. nginx

Muduo 是@bnu_chenshuo在业余时间编写的基于 Reactor 模式的 C++ 网络库,适用于 Linux 平台,支持多线程。@bnu_chenshuo就 Muduo 和 nginx 的性能对比评测发布了一条微博

对比了 Nginx 1.0.12 和 Muduo 0.3.1 内置的简陋 http 服务器的长连接性能,muduo 多数情况下略快。nginx 配置 http://t.cn/zO5EXZS。这不是说 muduo 适合当 httpd 用,而是说明 muduo 应该没有低级错误和明显的性能缺陷。测试用 ab 和 weighttp 充当客户端。

TreapDB问到:

有没有内存占用数据对比?

bnu_chenshuo回复:

10k 并发连接,4workers/threads,muduo 占 30m RES,nginx 占 4*9.5m RES。

TreapDB又问:

如果 response 比较大呢? 比如 10kb 左右,是否仍能胜出?

bnu_chenshuo回复:

你有合适的 nginx.conf 吗?测静态文件对 nginx 太不公平。

Simon 李晓明的评论是:

应该说 nginx 的 http 处理逻辑和扩展架构使其在和其他更单纯的 httpd 比拼中并不占优势。就如 apache 带着历史包袱,怎么也跑不快。

淘李子表示:

还是蛮怀疑的,两老性能差别这么明显⋯⋯不知道在高并发情况下的 cpu 占用情况如何?

bnu_chenshuo回复:

10k 并发连接,,4workers/threads,CPU 使用率 muduo 是 4*83%,Nginx 是 4*75%。1k 并发连接,muduo 是 4*85%,Nginx 是 4*78%。没有写反,客户端是 weighttp 双线程。

淘李子有些惊讶:

nginx 的 cpu 占用居然要低

bnu_chenshuo回复:

是的,我估计是内核态、用户态的比例不一样,因此 nginx 显得低一些,其实两个程序都把 4 个核占满了。

最后,bnu_chenshuo还给出了 muduo 相关资料地址:

muduo 的 github 代码库 http://t.cn/zOtcrnC ,系列博客文章 http://t.cn/zOtcrnN ,整理中的 muduo 使用手册 http://t.cn/zOtcrn9

结对 v.s. 不结对

larrycaiyu 发布一条微博,希望了解如何“结对编程“:

以前一直对”结对编程“不太感冒,主要是团队的单兵水平都不错,帮助不是特别明显,而且和老板阐述时间不加倍也累。但是最近新人增多,编程总体水平下降,看来要考虑怎么实施”结对编程“了?我的敏捷好友,有空提提建议。

ch3n2k觉得:

两个新人结对?还是一个老人带一个新人?貌似都不太靠谱。

honnix指出:

后者是挺标准的一个状态⋯⋯一定要使用机械键盘,身心愉悦。

ch3n2k回复:

比如让一个新人和你在一起干活会怎么样?这样的工作效率肯定比你一个人还低很多,主要又是你在干,他光看不干,也学不到什么东西

honnix的回应是:

你理解错了。这种情况应该让新人干,我来做 driver,至于效率,老板必须清楚一时的损失并不是什么大问题。

ch3n2k

如果不是临时的措施,而是长期的你必须带一个人。。。如果临时的,那一直都有在做的,我想 larry 不用强调

honnix

貌似做得不怎么样现在。结对有一整套方法策略,现在比较胡来。

ch3n2k

看了 wikipedia 的pair programming页,单从效率上面说两个新手 pair 比单个新手可以明显改善效率,完成很难的任务 pair 比较有效,其他情况效率改善不明显

honnix

现在的目的倒不是效率,却是像这个图里面说的场景。

ch3n2k

larry 的问题是新手太多了,所以让两个新手 pair 也能达到快速提高他们水平的目的,这样反而不容易出现图上的问题

honnix

不好说。这得基于两个都是好苗子的情况。

王海鹏 Seal对这个问题的看法是:

结对,结对,沟通造就团队。

今日微博推荐

EMC 中国研究院

推荐理由:EMC 中国研究院的官方微博, 主要关注于云计算和大数据,经常提供详实的技术资料和业界观察。

欢迎读者关注@InfoQ,推荐热门话题,可私信@InfoQ,同时请您说明推荐理由。

C++语言 & 开发文化 & 方法