벤치마크 빌더
설치 없이 사용할 수 있는 무료 온라인 JS 벤치마크 빌더. JavaScript 코드의 실행 속도를 비교할 수 있습니다.
Benchmark Builder 정보
JavaScript 마이크로 벤치마크를 1:1로 비교하는 도구입니다. 두 개의 함수 본문(스니펫 A와 스니펫 B)을 붙여넣고 반복 횟수를 설정하면, 각 스니펫을 100회 워밍업 호출로 실행한 뒤 설정된 횟수의 측정 호출을 수행하여, 총 소요 시간, 초당 작업 수, 어느 스니펫이 몇 배 더 빠른지 보고합니다.
사용 방법
1. 상단 카드에서 반복 횟수(기본값 10000)를 설정합니다. 2. 스니펫 A 카드에서 선택적 레이블(기본값 "A")과 벤치마크할 함수 본문(예: `return Math.random()`)을 입력합니다. 3. 스니펫 B에도 동일하게 입력합니다(예: `return crypto.getRandomValues(new Uint32Array(1))[0]`). 4. 실행을 클릭합니다. 두 스니펫 본문 모두 비어 있지 않을 때까지 버튼은 비활성화됩니다. 5. 결과 카드를 확인합니다. 각 스니펫은 밀리초 단위의 총 시간과 초당 작업 수를 표시하며, 하단 줄에는 더 빠른 스니펫과 속도 비율이 표시됩니다. 예외를 던지면 대신 빨간색으로 오류가 표시됩니다.
실행 모델과 메트릭
각 스니펫은 `new Function(code)`로 감싸져 인자 없는 함수로 호출되므로 유효한 함수 본문이어야 합니다(`return ...`을 사용해 작업을 수행합니다. 최상위 문도 허용됩니다). - 워밍업: JS 엔진이 최적화되도록 측정 전에 무조건 100회 호출합니다. - 측정: 타이트한 루프에서 스니펫을 `iterations`회 실행하기 전후로 `performance.now()`를 샘플링합니다. - 초당 작업 수: `iterations / (timeMs / 1000)`로 계산하며 반올림합니다. - 비율: `max(timeA, timeB) / min(timeA, timeB)`이며 소수점 이하 2자리로 표시합니다. 시간이 더 적은 스니펫이 더 빠른 것으로 보고됩니다. 이것은 최선을 다한 브라우저 내 마이크로 벤치마크일 뿐, 통계적으로 엄격한 제품군은 아님에 유의하세요. 결과는 머신 부하, 브라우저 엔진, GC 일시 정지, 데드 코드 제거의 영향을 받습니다.
▶실행을 클릭할 때마다 결과가 다른 이유는?
▶스니펫이 변수, 임포트 또는 async/await에 접근할 수 있나요?
▶스니펫이 예외를 던지면 어떻게 되나요?
▶데이터가 서버로 전송되나요?
이 도구가 당신에게 도움이 되었다면, 저에게 커피 한 잔 사주세요.
제게 커피 한 잔 사주세요.