벤치마크 비교기
무료 온라인 서비스 벤치마크 비교기 설치가 필요 없는 도구
벤치마크 비교 정보
구성 가능한 반복 횟수(1-1,000,000으로 제한)로 두 JavaScript 스니펫을 나란히 실행하여 각각의 총 시간과 초당 연산 횟수를 보고한 다음, 속도 비율과 함께 더 빠른 쪽을 선언합니다. 측정 전에 공유 Setup 블록이 한 번 실행됩니다.
사용 방법
1. (선택) 상단 카드에 Setup 코드를 넣습니다(한 번 실행, 예: 'let arr = new Array(1000).fill(0)')。 2. Code A와 Code B를 입력합니다. 각각이 함수의 본문이 되므로 'arr.map(x => x + 1)'과 같이 일반적인 문을 작성하세요. 3. 반복 횟수(1-1,000,000)를 설정합니다. 4. 실행을 클릭합니다. 먼저 min(n,100)회의 짧은 워밍업이 실행된 후 시간 측정 루프가 실행됩니다.
결과 해석
각 코드 블록은 ms 단위의 총 시간과 n / (time/1000)로 계산된 초당 연산 횟수를 보고합니다. 승자 카드는 녹색으로 강조 표시되고 속도 비율을 보여주는 요약 줄이 나타납니다(예: 'A is 2.3x faster than B'). 스니펫이 예외를 던지면 결과에 오류 문자열이 표시되며 승자는 선언되지 않습니다.
▶이것은 정확한 프로덕션 벤치마크인가요?
아니요. new Function과 단순 for 루프, performance.now를 사용합니다. 통계적 표본 추출은 없고, 100회 호출 워밍업 외에 JIT 워밍업으로부터의 격리도 없으며, 브라우저의 옵티마이저가 짧은 루프의 결과를 크게 왜곡할 수 있습니다. 결과는 엄밀한 측정이 아니라 빠른 비교 힌트로 취급하세요.
▶스니펫이 페이지 변수에 접근할 수 있나요?
아니요. 각 스니펫은 new Function으로 감싸져 페이지의 클로저가 아닌 자체 스코프에서 실행됩니다. 스니펫에 필요한 모든 것은 Setup 블록에서 선언되어야 합니다(예: setup 함수 최상위에서 let/var 사용).
▶Setup이 예외를 던지면 어떻게 되나요?
오류는 벤치마크 함수 내부에서 잡혀 측정 중이던 스니펫의 결과로 반환됩니다. 실행 버튼은 Code A와 Code B 모두에 내용이 있을 때까지 비활성화된 상태로 유지됩니다.
▶매우 큰 반복 횟수가 1,000,000에서 멈추는 것처럼 보이는 이유는?
탭이 멈추는 것을 막기 위해 반복 횟수는 Math.min/Math.max로 1-1,000,000 범위로 제한됩니다. 보고되는 초당 연산 횟수는 실제로 사용된 n을 기준으로 계산됩니다.
이 도구가 당신에게 도움이 되었다면, 저에게 커피 한 잔 사주세요.
제게 커피 한 잔 사주세요.