高性能Web服务端 PHP vs Node.js vs Nginx-Lua 的对比分析

1. ngx_lua nodejs php 比较

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

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

单纯做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可能会挂,可能源于多线程对内存资源的占用是不可测的。

引自 :http://bbs.phpchina.com/thread-278161-1-1.html

另附 测试报告:http://bluehua.org/demo/php.node.lua.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能大石头

物联网智能硬件设备身份验证机制

设备身份验证有以下目标: 1,别人的设备不能接入我们的云平台 2,我们的设备,不能接入别人的云平台 3,考虑到设备要批量生产,云平台先生成设备编码再写入每个设备...

13000
来自专栏CSDN技术头条

【问底】徐汉彬:大规模网站架构的缓存机制和几何分形学

【导读】徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设。 在过去的工...

216100
来自专栏Linyb极客之路

分布式之闲侃前后端分离的必要性

由于近期前端抽不出资源,博主最近接手一个前端项目的代码维护工作。拿到手一看,一脸懵逼,和博主当年所学的jsp开发方式、利用ajax来请求数据的单页面开发方式完全...

12220
来自专栏一个会写诗的程序员的博客

基于NodeJS的全栈式开发(基于NodeJS的前后端分离)【转】

随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的...

1.5K20
来自专栏JAVA高级架构

饿了么:日订单量超900万的架构设计及演进之路

网站在刚开始的时候大概只是一个想法:一个产业的模型,快速地将它产生出来。“快”是第一位的,不需要花太多精力在架构设计上。在网站进入扩张期才需要对架构投入更多的精...

14920
来自专栏微信公众号:Java团长

公司分层思想的演化历程

来源:www.cnblogs.com/wangsen/p/5052068.html

9230
来自专栏CSDN技术头条

基于Storm的实时计算应用实践

有赞使用storm已经有将近3年时间,稳定支撑着实时统计、数据同步、对账、监控、风控等业务。订单实时统计是其中一个典型的业务,对数据准确性、性能等方面都有较高要...

38480
来自专栏java思维导图

为什么一定要前后端分离?

由于近期前端抽不出资源,博主最近接手一个前端项目的代码维护工作。拿到手一看,一脸懵逼,和博主当年所学的jsp开发方式、利用ajax来请求数据的单页面开发方式完全...

16340
来自专栏哲学驱动设计

《架构师》反思:系统可靠性

最近系统学习了一个系统可靠性及其相关知识,今天在这总结一下。 首先,什么是系统的可靠性呢?系统的可靠性是指在规定的时间内及规定的环境下完成规定功能的能力,也...

40850
来自专栏精讲JAVA

前后端分离实践的架构设计

前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多。我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前...

17130

扫码关注云+社区

领取腾讯云代金券