Bun이 Node.js보다 훨씬 빠릅니까?
3482 단어 performancebunjsnodejavascript
작은 규모에서도 성능 차이가 이미 눈에 띄는지 확인하기 위해 일련의 간단한 테스트를 수행할 것입니다.
오늘은 요청 성능과 초당 작업에만 집중하겠습니다.
롤빵 설정
하지만 먼저 bun 디렉토리에 bun 설치를 시작하겠습니다.
curl https://bun.sh/install | bash
그리고 기본 응답 만들기
// http.js
export default {
port: 3000,
fetch(request) {
return new Response("Welcome to Bun!");
},
};
노드 설정
이제 노드로 이동할 수 있습니다. Node.js가 이미 설치되어 있기 때문에 기본 응답도 작성해야 합니다.
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
이제 즐길 준비가 되었습니다.
HTTP 요청 성능
HTTP 요청 성능을 위해 Artillery를 사용하여 두 가지 구현을 테스트하겠습니다.
포병은 npm을 통해 설치할 수 있습니다.
npm i artillery
그리고 빠른 부하 테스트를 실행할 수 있는 멋진 CLI가 함께 제공됩니다.
artillery quick --count 500 --num 100 http://localhost:3000
이것은 각각 100개의 요청으로 500명의 가상 사용자를 실행합니다.
결과는 다음과 같습니다.
http
마디
혈액 요소 질소
http.codes.200
50000
50000
http.request_rate
1585/초
1617/초
http.요청
50000
50000
http.응답
50000
50000
http.response_time
마디
혈액 요소 질소
분
0
0
최대
143
73
중앙값
32.8
22.9
p95
63.4
36.2
p96
100.5
50.9
vusers.session_length
마디
혈액 요소 질소
분
1835.3
1103.1
최대
4989.2
2805.9
중앙값
3678.4
2566.3
p95
4770.6
2780
p99
4867
2780
(밀리초 단위)
결과는 Bun의 성능 주장과는 거리가 멀지만 여전히 매우 견고합니다. 모든 측면에서 Bun이 승자로 돋보입니다.
초당 작업
여기에서는 소수를 계산하는 테스트를 수행하여 각 소수에 걸리는 시간을 확인합니다.
소수 계산을 테스트하기 위해 매우 간단한 코드를 실행하고
performance.now()
를 사용하여 실행 시간을 측정합니다.(function (maxNumbers = 30000) {
let start = performance.now();
let primeNumbers = []
let numberToCheck = 1;
while (primeNumbers.length < maxNumbers) {
if (isPrimeNumber(numberToCheck)) {
primeNumbers.push(numberToCheck);
}
numberToCheck++;
}
console.log(performance.now() - start);
})();
function isPrimeNumber(number) {
for (let i = 2; i < number; i++) {
if (number % i === 0) return false;
}
return true;
}
소수 계산 결과는 다음과 같습니다(밀리초 단위).
소수
마디
혈액 요소 질소
100
1.035
0.618
500
4.5071
3.223
1000
9.3060
8.680
5000
209.8485
198.4309
10000
909.618
849.832
30000
9113.5302
8559.282
이번에는 결과가 그다지 다르지 않지만 Bun이 다시 이깁니다.
Bun은 아직 베타 버전이며 이를 염두에 두어야 합니다. 이 단계에서 결과가 이미 유망해 보인다면 개선이 같은 방향으로 계속된다면 흥미로운 시기가 올 것이며 아마도 몇 년 안에 Bun이 시장에서 자리를 찾을 것입니다.
Reference
이 문제에 관하여(Bun이 Node.js보다 훨씬 빠릅니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/danielprlo/is-bun-so-much-faster-than-nodejs-17df텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)