请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需要一步,快速开始

搜索
开启左侧

Go、Nginx、Php、Nodejs谁能胜出紫禁之巅

马上注册,分享更多源码,享用更多功能,让你轻松玩转云大陆。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
公告:这里的测试框架都是很常用的框架,不去跟一些奇葩但是所谓性能极高的框架进行对比

由于我们在项目中大量使用Iris和nginx这两个Web框架(纯Go语言实现,零内存拷贝),同时也听过很多人问Go的Http性能对比nginx、对比nodejs究竟如何,有鉴于此,今天我们就来做一个Web框架性能真实比拼。
测试环境图: Pk4bRPzWK671376X.jpg 下面从多个维度对4个框架进行对比:Nginx VS Nginx-php-fpm VS Iris VS nodejs-Express
一、 Nginx
并发压力测试100 - 100K
fA8F1W3rDS3SdDtW.jpg
张图是在不同并发压力下,每秒处理的请求数
第二张是每秒吞吐的数据量
第三张是99.9%、平均、标准方差的延迟统计,可以看出有0.01%的请求延迟在2秒左右
第四张是单线程统计
(这些图后面不会再解释,请大家自行对比)
XSfSY8mfFgcsCzl7.jpg
这张图是soccket错误和请求总数的对比,这里的比例是100K / 3.5M
二、Nginx-Php-Fpm
Lr2pT5be1rSr9H2b.jpg
BK33WKXnZfrfRbRx.jpg
三、Iris(Golang)
h6W53BFIiizWiwbb.jpg
q2FmQfZV22PBCcyu.jpg
四、Express-Nodejs

bhQKzfFvvtzHwZFt.jpg
总结:
由于其它的评测往往对比的是Go最慢的框架之一 --标准库,因而这里对比了另外一个常用的最快的框架iris。
从上面图可以看出,Iris和Nginx的速度、请求延迟、吞吐、socket错误率都是差不多的,在延迟方面iris的表现甚至更好,nginx 最大2秒,iris 0.2-0.3秒
nginx-php的并发数是不错的,但是在并发超过数百后,错误率明显上升的非常高
Express这个结果我不知道为什么,可能是没有调优的原因?(这四个框架都没有进行调优)
最后再对比一下二次开发难度,iris由于是基于go的,因而非常非常非常简单,而且二次开发效率非常高,nginx用lua可以做一些事情,但是总是没有直接用同一种语言方便,而且用lua可能存在一些缺陷;Express不清楚,不评价,但是go的网络编程模型应该是比回调的方式简单很多的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

  • 0 关注
  • 0 粉丝
  • 1 帖子
广告招商