各种语言web性能简单对比测试
2024-09-03 03:19:46
忽然想比较一下 python nodejs go 的web 响应,就简单的写了个性能对比测试。
测试目标:
1 . i5 4核 32G 同一机器 linux
2. 用python(flask线程模式) nodejs go 分别写了简单的 echo 服务
测试工具:
wrk
服务器清单:
python flask http://192.168.0.208:5050/
nodejs express http://192.168.0.208:5056/
go server http://192.168.0.208:5057/
测试脚本:
wrk -c100 -t10 -d30s http://192.168.0.208:5050/
wrk -c100 -t10 -d30s http://192.168.0.208:5056/
wrk -c100 -t10 -d30s http://192.168.0.208:5057/ wrk -c1000 -t10 -d30s http://192.168.0.208:5050/
wrk -c1000 -t10 -d30s http://192.168.0.208:5056/
wrk -c1000 -t10 -d30s http://192.168.0.208:5057/
测试结果:
100 终端10线程
Running 30s test @ http://192.168.0.208:5050/
threads and connections
Thread Stats Avg Stdev Max +/- Stdev
Latency .24ms .29ms .28ms 90.54%
Req/Sec 137.84 54.19 202.00 63.72%
requests in .03s, .79MB read
Socket errors: connect , read , write , timeout
Requests/sec: 956.35
Transfer/sec: .62KB hylas@keras208:~$ wrk -c100 -t10 -d30s http://192.168.0.208:5056/
Running 30s test @ http://192.168.0.208:5056/
threads and connections
Thread Stats Avg Stdev Max +/- Stdev
Latency .37ms .63us .71ms 98.57%
Req/Sec .25k 253.62 .32k 97.80%
requests in .01s, .82MB read
Requests/sec: 42284.18
Transfer/sec: .29MB hylas@keras208:~$ wrk -c100 -t10 -d30s http://192.168.0.208:5057/
Running 30s test @ http://192.168.0.208:5057/
threads and connections
Thread Stats Avg Stdev Max +/- Stdev
Latency .20ms .19ms .37ms 91.89%
Req/Sec .93k .45k .58k 72.80%
requests in .07s, .45MB read
Requests/sec: 138501.94
Transfer/sec: .53MB
1000终端 10 线程
hylas@keras208:~$ wrk -c1000 -t10 -d30s http://192.168.0.208:5050/
Running 30s test @ http://192.168.0.208:5050/
threads and connections
Thread Stats Avg Stdev Max +/- Stdev
Latency .59ms .37ms .97s 91.52%
Req/Sec 129.50 92.32 610.00 66.97%
requests in .09s, .28MB read
Socket errors: connect , read , write , timeout
Requests/sec: 1022.24
Transfer/sec: .57KB hylas@keras208:~$ wrk -c1000 -t10 -d30s http://192.168.0.208:5056/
Running 30s test @ http://192.168.0.208:5056/
threads and connections
Thread Stats Avg Stdev Max +/- Stdev
Latency .00ms .27ms .53ms 96.69%
Req/Sec .01k 480.69 .12k 94.63%
requests in .09s, .03MB read
Requests/sec: 39545.31
Transfer/sec: .88MB hylas@keras208:~$ wrk -c1000 -t10 -d30s http://192.168.0.208:5057/
Running 30s test @ http://192.168.0.208:5057/
threads and connections
Thread Stats Avg Stdev Max +/- Stdev
Latency .17ms .92ms .96ms 91.23%
Req/Sec .94k .57k .62k 70.73%
requests in .09s, .57MB read
Requests/sec: 127325.42
Transfer/sec: .79MB
结论:
1. 100 终端时:python 延时最大,与另外两个相差一个数量级 , nodejs go 差不多。 Req/Sec 比例分别是 0.13 : 4:13 , go能大大 13k/s
2. 1000 终端时: nodejs 和 go 的延时增加,但还是明显优与 python , Req/Sec 保持稳定 python 最低,nodejs :go 3:12 go的峰值 79k/s
3. 在高并发web服务中 首选 go , nodejs 次之 python 最弱
ps: 以上结论未考虑 开发效率,人员薪资成本等因素
最新文章
- 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL
- 通过 listboxitem 查找属于listbox第几条数据
- iOS开发,用了ARC,引入非ARC的第三方,报错
- 如何查看屏幕touch driver是否在正常工作
- Html5拖拽复制
- Easyui数据表格-地区列表及工具栏增删改
- NEC学习 ---- 模块 - 左图右文图文列表
- 正则表达式(http://tieba.baidu.com/p/882391125)
- TestDisk 恢复rm -rf 的文件
- Load xlsx in a folder to RDBMS table with Talend
- 命令行创建畸形文件夹+畸形目录管理工具(DeformityPath)
- 各类.NET学习视频推荐
- Spring Autowiring by AutoDetect
- 鸟哥的Linux私房菜学习笔记(1)
- Windows Phone开发(26):启动器与选择器之MediaPlayerLauncher和SearchTask
- ImageMagick利用蒙版合成图片
- sass学习入门篇(三)
- springboot(十九):使用Spring Boot Actuator监控应用
- .Net基础——程序集与CIL
- 华为S5700设置vlan,并绑定电脑的IP地址与mac地址。
热门文章
- 算法系列:Shell 排序
- 廖雪峰Java14Java操作XML和JSON-1XML-4第三方XML库
- 字符串哈希——1056E
- PAT甲级——A1086 Tree Traversals Again
- Struts2入门问题
- Ubuntu下U盘能看见盘符但打不开
- error C2440 “static_cast” 无法从“void (__thiscall C* )(void)...
- 验证occ和vtk整合工作的demo
- kafka comsumer
- 数据挖掘-diabetes数据集分析-糖尿病病情预测_线性回归_最小平方回归