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

简介: 1. ngx_lua nodejs php 比较   我在研究一阵子ngx_lua之后发现lua语法和js真的很像,同时ngx_lua模型也是单线程的异步的事件驱动的,工作原理和nodejs相同,代码甚至比nodejs的异步回调更好写一些。
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可能会挂,可能源于多线程对内存资源的占用是不可测的。
 
 
相关文章
|
15天前
|
Web App开发 监控 JavaScript
监控和分析 JavaScript 内存使用情况
【10月更文挑战第30天】通过使用上述的浏览器开发者工具、性能分析工具和内存泄漏检测工具,可以有效地监控和分析JavaScript内存使用情况,及时发现和解决内存泄漏、过度内存消耗等问题,从而提高JavaScript应用程序的性能和稳定性。在实际开发中,可以根据具体的需求和场景选择合适的工具和方法来进行内存监控和分析。
|
1月前
使用 Node 创建 Web 客户端
使用 Node 创建 Web 客户端
114 4
|
1月前
|
开发框架 JavaScript 前端开发
使用 Node.js 和 Express 构建 Web 应用
【10月更文挑战第2天】使用 Node.js 和 Express 构建 Web 应用
|
10天前
|
运维 监控 JavaScript
鸿蒙next版开发:分析JS Crash(进程崩溃)
在HarmonyOS 5.0中,JS Crash指未处理的JavaScript异常导致应用意外退出。本文详细介绍如何分析JS Crash,包括异常捕获、日志分析和典型案例,帮助开发者定位问题、修复错误,提升应用稳定性。通过DevEco Studio收集日志,结合HiChecker工具,有效解决JS Crash问题。
28 4
|
19天前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
129 9
|
18天前
|
JavaScript 前端开发 开发者
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第27天】在前端开发领域,Vue.js和Angular是两个备受瞩目的框架。本文对比了两者的优劣,Vue.js以轻量级和易上手著称,适合快速开发小型到中型项目;Angular则由Google支持,功能全面,适合大型企业级应用。选择时需考虑项目需求、团队熟悉度和长期维护等因素。
25 1
|
19天前
|
JavaScript 前端开发 API
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第26天】前端技术的飞速发展让开发者在构建用户界面时有了更多选择。本文对比了Vue.js和Angular两大框架,介绍了它们的特点和优劣,并给出了在实际项目中如何选择的建议。Vue.js轻量级、易上手,适合小型项目;Angular结构化、功能强大,适合大型项目。
16 1
|
23天前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
21 4
|
1月前
|
JavaScript Java PHP
快速对比:Django、Spring Boot、Node.js 和 PHP
快速对比:Django、Spring Boot、Node.js 和 PHP
67 7
|
1月前
|
数据采集 JSON 前端开发
JavaScript逆向爬虫实战分析
JavaScript逆向爬虫实战分析