node.js和python性能测试(一)

写在前面:

由于对python语言的热爱加上现在接触到node.js,对其非阻塞异步编程模型非常感兴趣,加之网络上面对两者作web应用性能的测试很少,故在此对两者的性能做个简单的测试。由于python原生是不支持非阻塞异步编程的,故这里对python采用了tornado以支持非阻塞异步编程。

测试环境介绍

网络环境:localhost
服务器系统:Fedora 15
服务器配置:AMD Athlon II X 4 640
内存:8GB
测试工具:apache 2.2.19自带的ab测试工具

单进程web服务器测试:

该测试基于空逻辑,服务器只返回一段文本‘hello,world’,测试结果如下表:


1000c/30s

1000c/30s

platform

node.js

python with tornado

rps

4771

1564

tpr

209ms

639ms

80%req

68ms

212

说明:

1000c/30s:并发1000,压测30秒
rps:没秒处理的请求数
tpr:处理每个请求所花的平均时间
80%req: 80%的请求在多少时间内完成
由上图可以看出虽然都是非阻塞I/O,但是node.js的效率几乎是python在tornado框架下的三倍,python的落败让我很伤心。

多进程web服务器测试

在node.js中通过引入cluster实现多核处理器开启多个进程,监听同一端口,在python中的tornado框架下通过引入HTTPServer,使用其多进程的特性,服务器依然只返回‘hello,world’,测试结果如下表:


1000c/30s

1000c/30s

platform

node.js

python with tornado

rps

13532

5025

tpr

74ms

198ms

80%req

47ms

94ms


说明:(同上)
由上图可以看出,在充分利用多核心优势的情况下,node.js和python的性能几乎是单进程的三倍还多,同样node.js依旧将python远远的甩在了身后,在同模型的情况下不知是什么原因使得两种语言的性能差异如此悬殊,还望高人解答。




评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值