Deno 2.0이 방금 출시되어 Bun 및 Node.js보다 빠르다고 주장했으며 Bun이 더 빠르다고 주장하는 것과 같은 방식입니다. 이것이 내 관심을 끌었기 때문에 그들의 성능을 테스트하고 실제 시나리오에서 어떻게 비교되는지 보기로 결정했습니다.
공정한 비교를 위해서는 세 가지 JavaScript 런타임 환경(Node.js, Deno 및 Bun)을 모두 호환하는 프레임워크를 선택해야 합니다. 그래서 저는 세 가지 모두와 완벽하게 통합되는 Hono.js를 사용하기로 결정했습니다.
OS: 우분투 24.04.1 LTS(WSL)
시스템: Ryzen 5 5500U, 16GB RAM
Node.js: v22.9.0
데노: v2.0.0
번: v1.1.30
테스트 명령:
bombardier -c 100 -d 30s http://localhost:3000
벤치마킹을 위해 100개의 동시 연결로 30초 동안 실행되는 Go 기반 부하 테스트 도구인 Bombardier를 사용했습니다. 보다 정확한 결과를 보장하기 위해 각 테스트를 3번 반복했으며 각 환경에 대해 이러한 실행의 평균을 취했습니다.
저는 유연성과 상호 호환성 때문에 Hono.js를 선택했습니다. Hono.js를 사용하면 Node.js, Deno 및 Bun이라는 세 가지 JavaScript 런타임 모두와 쉽게 통합할 수 있으므로 이러한 종류의 벤치마크에 이상적인 프레임워크가 됩니다. 가볍고 빠르며 간단한 API를 갖추고 있어 많은 오버헤드 없이 런타임 간의 성능 차이를 강조할 수 있습니다.
다음은 각 런타임에 대한 초당 평균 및 최대 요청입니다.
(요청/초)
승자: 번
각 런타임에 대한 지연 시간(요청당 밀리초 단위)은 다음과 같습니다.
(ms/req)
우승자: Bun(평균) 및 Deno(최대)
분석 및 주요 시사점
결과를 바탕으로 다음과 같은 핵심 사항이 나타났습니다.
Node.js: Node.js는 수년 동안 서버 측 JavaScript의 업계 표준이었지만 Deno 및 Bun과 비교할 때 초당 요청 측면에서 낮은 성능을 보여줍니다. 평균 대기 시간도 더 높으며, 이는 동시 로드가 많은 경우 더 많은 어려움을 겪을 수 있음을 나타냅니다. 그러나 Node.js는 광범위한 생태계와 프로덕션 환경의 안정성으로 인해 여전히 널리 채택되고 있습니다.
Deno 2.0: Deno는 Node.js보다 훨씬 더 나은 성능을 발휘하여 훨씬 낮은 평균 대기 시간을 유지하면서 초당 요청을 두 배 이상 제공했습니다. 이는 Deno가 동시 연결 처리에 고도로 최적화되어 있으며 성능이 중요한 애플리케이션에 대한 강력한 대안이 될 수 있음을 나타냅니다. 현대적인 디자인과 TypeScript 지원과 같은 내장 기능은 최신 프로젝트에서 우위를 점합니다.
Bun: Bun은 원시 성능 측면에서 Node.js와 Deno를 능가했습니다. 초당 가장 많은 요청 수를 처리하고 가장 낮은 평균 대기 시간을 유지했습니다. 따라서 Bun은 속도가 최우선인 프로젝트에 매력적인 옵션이 됩니다. 그러나 아직은 새로운 런타임이고 생태계와 커뮤니티가 아직 Node.js만큼 성숙하지 않습니다.
이 벤치마크에서는 세 가지 환경 모두에서 Hono.js를 프레임워크로 사용하여 Deno 2.0, Bun 및 Node.js의 성능을 테스트했습니다. 결과는 Deno와 Bun 모두 원시 속도와 대기 시간 측면에서 Node.js보다 뛰어난 성능을 보인다는 것을 분명히 보여줍니다. 특히 Bun은 고성능 시나리오에서 빛을 발하는 반면 Deno는 최신 개발 기능에 초점을 맞춘 균형 잡힌 솔루션을 제공합니다.
Node.js가 가장 빠른 옵션은 아닐 수 있지만, 특히 성숙한 생태계에 의존하는 프로젝트의 경우 여전히 신뢰할 수 있는 선택입니다. 반면, 새로운 프로젝트를 진행 중이고 성능을 극대화해야 하는 경우 Deno와 Bun 모두 강력한 대안을 제공합니다.
궁극적으로 런타임 선택은 프로젝트의 특정 요구 사항에 따라 달라집니다. 현재 Deno와 Bun은 JavaScript 런타임 경쟁에서 새로운 경쟁자임을 입증했으며 Bun은 성능 면에서 눈에 띄는 선두를 달리고 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3