종합 결과 요약 (Benchmark Overview)

도구 (Tool) 버전 런타임 / 엔진 린트 시간 (mean) ESLint 대비 ESLint 진단 일치
데이터를 불러오는 중...

코퍼스별 실행 시간 (Execution Time)

hyperfine 측정 기준 평균 실행 시간입니다. 바 길이가 짧을수록 빠르며, 상대 배수는 해당 코퍼스의 최고 속도 기준입니다.

ESLint 진단 일치 검증 (Diagnostic Parity)

규칙 (ESLint) ESLint bun lint oxlint Biome

측정 환경 및 기술적 분석

측정 방식 및 재현 (Methodology)

  • 측정 도구: hyperfine -N, 워밍업 1회. 린트는 파일을 바꾸지 않으므로 원복 없이 같은 코퍼스를 반복 측정합니다. 캐시는 모든 도구에서 꺼진 상태입니다.
  • 코퍼스 구성: test_web_page 저장소의 git 추적 JS / JSX / TS / TSX 소스. Vue 는 bun lint · oxlint 대상이 아니라 제외했고, large 는 이를 복제해 대규모 프로젝트를 모사합니다.
  • 규칙 세트: eslint:recommended 중 네 도구가 모두 지원하는 규칙만 전부 warn 으로 켭니다. Biome 대응은 규칙마다 biome migrate eslint 로 뽑았고(inspired 제외), 설정은 코퍼스 밖에 두고 -c 로 넘깁니다.
  • 재현 명령: bun install && bun run bench 실행 시 벤치마크가 재수행되고 results.json이 업데이트됩니다.

성능 및 호환성 분석 (Engineering Notes)

  • 병렬 처리: ESLint 는 기본 싱글스레드이고 --concurrency=auto 로 worker thread 를 쓸 수 있지만, 파일이 적으면 워커 기동 비용 때문에 오히려 느립니다. oxlint · Biome · bun lint 는 네이티브 스레드 풀로 모든 코어를 씁니다.
  • bun lint: eslint.config.mjs 를 그대로 읽고(--doctor 기준 규칙 전부 네이티브 실행), ESLint 와 같은 파일 선택(.jsx 는 files 지정 필요)과 같은 진단 결과를 냅니다.
  • TS 파일의 core 규칙: ESLint core no-unused-vars · no-undef 는 타입 선언을 이해하지 못해 TS 에서 오탐을 내고, bun lint 는 이것까지 재현합니다. oxlint · Biome 은 TS 를 인식해 이 경고를 내지 않습니다.
  • oxlint 기동 비용: npm 배포본은 Node 래퍼 + napi 바인딩이라 측정값에 Node 시작 시간이 포함됩니다.
규칙 세트
ESLint · oxlint · bun lint Biome
전체 측정 데이터 테이블 (Raw Benchmark Data)
코퍼스 도구 평균 실행 시간 (Mean) 표준 편차 (StdDev) 최소 (Min) 최대 (Max) 상대 배수