怎么这么慢!:flask 和 node express 性能测试

本文通过在相同环境下对比flask与node express的性能,发现在多线程模式下,flask每秒处理请求RPS为311.63,而node express达到1383.74。测试显示,node express的第一个1W请求耗时较长,后续请求速度显著提升。作者对flask的原生WSGI实现原理产生兴趣,并计划考虑使用更高效的WSGI服务器以提高性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:我写完项目之后,顺手测了测性能,发现是真的低。。

 

测试环境配置

操作系统:win10
CPU:Ryzen7 3700X 
主板:微星8450M MORTAR MAX
显卡:技嘉RTX2060Super Windforce OC
内存:金士顿骇客神条DDR4 3200 16G两条

测试程序和服务器程序在同一台电脑上

 

flask

相关参数

python 3.8.3
flask 1.1.2

 

测试的函数,多线程模式开启

from flask import Flask

app = Flask(__name__)


@app.route('/more', methods=['GET'])
def more():
    return '123'



if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080, threaded=True)

Apache Benchmark 测试结果,flask多线程模式开启

 

测试的函数,多线程模式关闭

from flask import Flask

app = Flask(__name__)


@app.route('/more', methods=['GET'])
def more():
    return '123'



if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

Apache Benchmark 测试结果,flask多线程关闭

每秒处理请求RPS:311.63

感觉flask的多线程模式开了个寂寞

 

node express

相关参数

node v12.18.2
express 4.17.1

测试的程序

const express = require('express')

var app = express()
const port = 3000

app.get('/more', async function(req, res){
	res.send('123')
})

app.listen(port, ()=>{
    console.log(`Server running on port ${port}`)
})

 

Apache Benchmark 测试结果

node express RPS:1383.74

另外,在测试node express过程中,发现第一个1W个请求花费的时间比较久
第一个1W:20S
第二个1W:07S
应该是Apache Benchmark申请一万个端口的时间比较久
我在express端测试了一下,发现真是如此


更多

令我感到好奇的是,不知道flask使用的原生WSGI是什么实现原理
我包含数据库(mysql8.0)操作的时候,RPS只有248,所以我起了想测试一下框架本身
一个简单函数RPS也只有311.63,说明这个框架本身就很慢

看来不能够偷懒,一定要为其配置其它更高效的WSGI服务器了呢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值