1. ngx_lua nodejs php 比较
我在研究一阵子ngx_lua以后发现lua语法和js真的很像,同时ngx_lua模型也是单线程的异步的事件驱动的,工做原理和nodejs相同,代码甚至比nodejs的异步回调更好写一些。
性能测试,100并发php:17400nodejs:31197ngx_lua:32628php
单纯作http代理服务器加上一些简单的逻辑,彷佛ngx_lua的方案更加合适。 引自: PHP vs Node.js vs Nginx-Lua
如下是从占用的资源上来分析:
出自:phpnode 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.
结论:
在通常状况下python和node.js的处理能力至关,均2倍于php, 在并发数达到必定程序时,php可能会挂,可能源于多线程对内存资源的占用是不可测的。