Fastify vs Springboot: การเปรียบเทียบประสิทธิภาพของ Hello world

Apr 07 2023
ในบทความก่อนหน้านี้ที่ฉันเปรียบเทียบเซิร์ฟเวอร์ HTTP ดั้งเดิมของ Node กับสปริง ฉันได้รับความคิดเห็นว่าการเปรียบเทียบนั้นไม่ยุติธรรม Spring เป็นเฟรมเวิร์ก ดังนั้นควรเปรียบเทียบกับเฟรมเวิร์กบนฝั่ง Node: Express, Fastify, Nest

ในบทความก่อนหน้านี้ที่ฉันเปรียบเทียบเซิร์ฟเวอร์ HTTP ดั้งเดิมของ Node กับสปริง ฉันได้รับความคิดเห็นว่าการเปรียบเทียบนั้นไม่ยุติธรรม Spring เป็นเฟรมเวิร์ก ดังนั้นควรเปรียบเทียบกับเฟรมเวิร์กบนฝั่งโหนด: Express, Fastify, Nest.js เป็นต้น เป็นจุดที่ถูกต้องมาก

เมื่อเร็วๆ นี้ฉันได้เปรียบเทียบระหว่าง Express กับ Spring และ Spring ก็กลายเป็นผู้ชนะตามที่คาดไว้

บทความนี้เปรียบเทียบเฟรมเวิร์กยอดนิยมอื่น ๆ เช่น fastify กับสปริง เป็นที่ทราบกันดีว่า fastify เร็วกว่า Express มาก ฉันคาดว่าจะทำงานได้ดีกว่าฤดูใบไม้ผลิ การตั้งค่าการทดสอบเหมือนกัน: MacBook M1 พร้อม RAM 16G Node.js v19.7.0 ถูกเปรียบเทียบกับ spring 3.0.2 บน Java 17

รหัสมีดังนี้:

โหนด js

import Fastify from "fastify";
const fastify = Fastify({ logger: false });

fastify.get("/", () => {
  return "Hello world!";
});

fastify.listen({ port: 3000 });

package com.example.demo;

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

@SpringBootApplication
@RestController
public class DemoApplication {

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

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

พุ่งตรงไปที่ผลลัพธ์กันเลย

ซึ่งแตกต่างจาก Express ซึ่งค่อนข้างช้าเมื่อเทียบกับสปริง Fastify จะเร็วกว่ามาก Fastify ให้ RPS มากขึ้นโดยใช้ CPU และหน่วยความจำต่ำ

ผู้ชนะ : Fastify

การเปรียบเทียบกับ Express สามารถดูได้ที่นี่