Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?

node,js,vs,spring,boot,hello,world,性能,对决,更快,一点 · 浏览次数 : 1431

小编点评

**Spring Boot 与 Node.js 性能比较** **性能指标** | 指标 | Spring Boot | Node.js | |---|---|---| | CPU 使用率 | 190% | 95% | | 内存使用率 | 470M | 82M | | q75 延迟 | 2.5ms | 123ms | | 中值延迟 | 6ms | 2.5ms | | q90 延迟 | 5秒 | 12秒 | | 最大延迟 | 几秒钟 | 12秒 | **结论** 在资源限制方面,Node.js 的性能优于 Spring Boot。在最大延迟方面,Node.js 的性能略有优于 Spring Boot。 **其他** * Spring Boot 是一个基于 Java 的服务框架,可用于构建各种 RESTful 和 Web 服务。 * Node.js 是一个基于 Chrome V8 引擎的 JavaScript运行时环境,可用于构建实时应用程序。 * 性能测试结果可能因测试环境和硬件而有所不同。

正文

摘要:本文由葡萄城技术团队于博客园发布。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

前言:

Spring Boot 在 Java 生态中备受欢迎,它是一款基于 Java 构建的轻量级服务端框架,主要用于 Web 服务。Spring Boot 的应用使得创建各类基于 Spring 的企业级应用变得异常简单。Node.js作为一种基于Chrome V8引擎的JavaScript运行时环境,在服务端上运行JavaScript代码。它以其独特的特性为我们提供了极其便捷的开发方式,今天小编就为大家对比一下Spring Boot与Node.js之间的性能差异。

运行环境:

硬件:MacBook Pro M1 16g

测试工具:Bombardier

测试并发数:50、100、200

版本:

Node.js v19.6.0

Spring Boot v3.0.2

Java17

Node.js 测试代码:

import http from "node:http";

 http.createServer((req, resp) => {
  try {
   if (req.method !== "GET") {
    return resp.writeHead(405).end();
   }
   if (req.url !== "/") {
    return resp.writeHead(404).end();
   }
   resp.writeHead(200, {
    "content-type": "text/plain",
   });
   resp.end("Hello world");
  } catch (e) {
   resp.writeHead(500).end();
  }
 }).listen(3000);

Spring Boot测试代码:

package com.example.demo;

 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.Spring BootApplication;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.RestController;

 @Spring BootApplication
 @RestController
 public class DemoApplication {

   public static void main(String[] args) {
     SpringApplication.run(DemoApplication.class, args);
   }

   @GetMapping("/")
   public String handleRequest() {
     return "Hello World!";
   }
 }

测试时,每个并发执行500万请求,对比如下性能指标:

  • 耗时
  • 每秒处理请求数
  • 延迟:平均值、中值、q25、q75、q90、最大值(以毫秒为单位)
  • 资源占用情况:CPU和内存平均使用率

测试结果:

经过对比测试,绘制了如下图表(延迟以毫秒为单位):

测试结果分析:

资源占用方面,Spring/Java 是一个资源密集型应用,在一个简单的“Hello World”案例中,200并发情况下,Spring 使用了约190%的 CPU 和 470M 的内存。相比之下,Node.js 使用了 95% 的 CPU 和 82M 的内存。

延迟方面,在q75之前,Spring 的延迟低于 Node.js。Spring在最大延迟达到了几秒钟,而Node.js的最大延迟仅 123ms。Spring 的延迟中位数(0.6ms)优于 Node.js(2.5ms)。

总结来看,Node.js 在使用显著较少的系统资源的情况下”吞吐量“(RPS/每秒请求数)更高。

原文链接:https://medium.com/deno-the-complete-reference/node-js-vs-springboot-hello-world-performance-comparison-59b4d461526c

扩展链接:

ChatGPT赋能低代码开发:打造智能应用的双重引擎

窗口函数大揭秘!轻松计算数据累计占比,玩转数据分析的绝佳利器

3D模型+BI分析,打造全新的交互式3D可视化大屏开发方案

与Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?相似的内容:

Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?

摘要:本文由葡萄城技术团队于博客园发布。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言: Spring Boot 在 Java 生态中备受欢迎,它是一款基于 Java 构建的轻量级服务端框架,主要用于 Web 服务。Spring Boot 的应用使得

前端太卷了,不玩了,写写node.js全栈涨工资,赶紧学起来吧!!!!!

首先聊下node.js的优缺点和应用场景 Node.js的优点和应用场景 Node.js作为后端开发的选择具有许多优点,以下是其中一些: 高性能: Node.js采用了事件驱动、非阻塞I/O模型,使得它能够处理大量并发请求而不会阻塞线程,从而具有出色的性能表现。 轻量级和高效: Node.js的设计

如何使用Node.js、TypeScript和Express实现RESTful API服务

Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Express是一个保持最小规模的灵活的 Node.js Web应用程序开发框架,为Web和移动应用程序提供一组强大的功能。使用Node

Node.js 应用全链路追踪技术——全链路信息存储

本文主要介绍在Node.js应用中, 如何用全链路信息存储技术把全链路追踪数据存储起来,并进行相应的展示,最终实现基于业界通用 OpenTracing 标准的 Zipkin 的 Node.js 方案。

Node.js 未来发展趋势

Node.js 是一种非常有前途的后端技术,它具有高性能、高可扩展性和轻量级等优点。Node.js 还可以用来开发命令行工具和跨平台桌面应用程序等,具有非常广泛的应用场景。

Node.js 20 —— 几个令人大开眼界的特性

前言:欢迎来到 Node.js 20 Node.js 20 已经发布,带来了创新和激动人心的新时代。这个开创性的版本于2023年4月18日首次亮相,并将在2023年10月发布长期支持(LTS)版本,并且将持续支持至2026年4月,下面小编就为大家介绍一下Node.js20的几个新特性: 1.Node

安装node.js与webpack创建vue2项目

转载请注明出处: 1.安装node.js 下载地址:http://nodejs.cn/download/ (可查看历史版本) node.js 中文网:http://nodejs.cn/api-v16/ 建议下载稳定版本的msi 格式的进行安装;msi 为windows 直接安装包,一直next即可;

nomp矿池源码详解

是一个由Node.js编写的高效、可扩展的加密货币挖矿池,它基于node-stratum-pool模块,包含奖励处理与支付功能以及一个响应式前端网站,提供实时统计和管理中心,本文对该项目的主体架构及相关源码进行了介绍!

【ASP.NET Core】在node.js上托管Blazor WebAssembly应用

由于 Blazor-WebAssembly 是在浏览器中运行的,通常不需要执行服务器代码,只要有个“窝”能托管并提供相关文件的下载即可。所以,当你有一个现成的 Blazor wasm 项目,没必要用其他语言重写,或者你不想用 ASP.NET Core 来托管(有些大材小用了),就可以试试用 node

如何使用 Node.js Stream API 减少服务器端内存消耗?

摘要:让我们看一个示例,展示在内存消耗方面,采用流的编程思路带来的巨大优越性。 本文分享自华为云社区《使用 Node.js Stream API 减少服务器端内存消耗的一个具体例子》,作者:Jerry Wang 。 HTTP 响应对象(上面代码中的 res)也是一个可写流。这意味着如果我们有一个表示