性能测评:Ngix_Lua, Node.JS Python三者性能相当,均比php快近一倍


发布者 ourjs  发布时间 1385516822000
关键字 编程技巧  分享 

之前我们介绍过:  性能测评:Node.JS比Java EE快20%,  下面我们来比较一下其他几种脚本语言php, lua, python 和 node.js之间的性能:

 

1. ngx_lua nodejs php 比较

 

我在研究一阵子ngx_lua之后发现lua语法和js真的很像,同时ngx_lua模型也是单线程的异步的事件驱动的,工作原理和nodejs相同,代码甚至比nodejs的异步回调更好写一些。

性能测试,100并发
php:17400
nodejs:31197
ngx_lua:32628

单纯做http代理服务器加上一些简单的逻辑,似乎ngx_lua的方案更加合适。 引自: PHP vs Node.js vs Nginx-Lua

 

以下是从占用的资源上来分析:

lua php nodejs

出自:php node lua 由图中可以看出:

nodejs占用CPU比lua高一些,

nodejs与ngx_lua二者占用内存不变(在处理同一业务逻辑时),php占用内存不稳定(可能跟多线程有关,连接数越多,内存占用越多)


下面猿友对ngix_lua的一些看法:

 

xueyangkk

其实这样考虑是对的 ! ngx_lua是基于nginx的扩展 nginx已经有无数家验证过 他确实是个可靠的WEB应用。而且ngx_lua 已经有很多广泛的应用 可以说技术上来说已经很成熟了,你们的平台是一个OPANAPI的应用 。所以 在这个上 选ngx_lua 是对的 !当然这并不是说NODE不好 !语言没什么好坏 !只能从成本 技术成熟度来考虑 !

jayceefun

之前使用过章大神openresty, 确实很值得一试, 比node.js易用, 没有那么裸, 做的各种性能优化也都是c级别的, 刚出时也是号称并发超过node.js的. lua确实是很快, 据说是脚本语言里最快的了. 不过也有缺点就是lua的文件处理很弱, 各种库非常的少, 记得当初的想要个好点的orm都没有, 还得手写. 同意楼主说的lua某种程度上真的是跟js很像啊, 当初转型node.js语言上也基本没费多少劲. 推荐一个用lua完全模仿node.js写的一个东西, 叫luvit, 现在完全不成熟, 只有些简单的http server功能, 但是基础的性能测试结果是比node.js快2倍还是4倍来的, 很恐怖啊有木有. 

 

结论:

并发请求数lua/nodejs相当,均比php快一倍

资源占用上lua最少,nodejs次之,二者对内存并不贪婪,php占用最多且不稳定。

 

2. nodejs python php 比较

 

国外某猿友做过一个关于php/nodejs/go/scala/python之间的性能比较:API Programming Language Bake-off 

以下测试用例为使用mongodb添加删除数据时,各个语言每秒处理的最大请求数:

由其博文可以看出,在并发线程达到一定程度时go和php写的测试脚本都挂了(go不是号称最快吗?)

 

另外两位中国猿友的评测,也证明了这一点,

1. 测了一下nodejs和php性能

2. 单服务器node.js和php性能测试

在他们的结论中node.js的并发处理能力均二倍于php.

 

结论:

在一般情况下lua和node.js的处理能力相当,均2倍于php,甚至lua的性能更好。在并发数达到一定程度时,php可能会挂,可能源于大并发下多线程对内存资源的占用是不可测且不可控的。





回复 (12)
  • #
  • #1 阑人无归期 1385533060000
    Really?
  • #2 蓑衣 1385627372000
    有个错别字: 一定程序时, => 一定程度时?
  • #3 小意境 1385627443000
    有个错别字: 一定程序时, => 一定程度时?
  • #4 一场不分手的恋爱 1387788598000
  • #5 ja高手 1394708343000
    这是神马情况
  • #6 x 1400550068000
    PHP-FPM是单线程应用,开一个PHP-FPM工作进程,然后用ab压力测试,cat /proc/PHP_FPM_PID/status|grep Threads可以看到线程数始终为1。
  • #7 lingering_sun 1408357019427

    百度 google facebook 等等一些用php的都是傻蛋

  • #8 唐天尼 1419828906701

    加粗文本强调文本

    引用

  • #9 石台圣 1429076072831

    说好的python呢?提都没提了?

  • #10 欧动刃 1431618591481

    我是来看Python的啊。

  • #11 谭朽爷 1455530625582

    百度 google facebook 等等一些用php的都是傻蛋? 呵呵

  • #12 卓飞交 1461156612102

    You got a really useful blog I have been here reading for about an hour. I am a newbie and your success is very much an inspiration for me. https://www.coverbook.co

微信扫码 立即评论