Python、golang、java、nodejs的HTTP性能对比

文章目录

前言

这两年都在使用Python写后端服务,因业务并发量不大,完全可以满足业务需求,而且编码效率较高,也就没关心其http的性能表现。最近突然想对比下几种流行语言的HTTP性能,因此分别使用Python、golang、java、nodejs实现了几个相同功能的接口以测试它们的性能,并生成对比表格。

一、测试环境

主机是虚拟机,服务全部以Docker的形式部署。
测试中的方法说明:

  1. 服务回显:由客户端传入简单字符串,服务端返回此字符串
  2. 简单计算(累加):计算的是 1至100000的数字的和值
  3. 复杂计算(质数):计算的是 1至100000的质数的和值
    Python、golang、java、nodejs的HTTP性能对比

; 二、测试方案1

此方案主要测试了Python使用flask框架,在三种不同工作模式时的业务表现,三种模式分别是:

  • flask.wsgi:这是flask自带的wsgi服务,虽然支持多线程,但官方建议是不要运行在生产环境。
  • gevent:使用的是协程实现高并发。
  • gunicorn:支持多进程+协程的管理。

同时加入了golang进行测试对比,下面是测试结果:
图有点宽,可在新页面查看

Python、golang、java、nodejs的HTTP性能对比
从测试结果来看,Python使用了协程后HTTP的性能提升明显,但与golang相比确实很伤心,计算能力更是相差太远。

二、测试方案2

此方案首先将 Python3.6.8 换成了 3.9.5;然后加入了java、nodejs的测试对比。
图有点宽,可在新页面查看

Python、golang、java、nodejs的HTTP性能对比
测试结果有以下几点值得关注:
  1. Pythoh 3.9.5确实比3.6.8有一定的性能提升。
  2. HTTP的性能依然是golang最强,java、nodejs、python依次排名。
  3. 疑惑:nodejs的对于质数计算这种纯 if + for循环的性能为什么高出golang和java这么多?
    (在做斐波那契这种递归计算时golang确实又比nodejs性能更高)

Original: https://blog.csdn.net/luxingjyp/article/details/123703506
Author: luxingjyp
Title: Python、golang、java、nodejs的HTTP性能对比

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/747765/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球