성능 벤치마크
ZNTC의 트랜스파일/번들 성능과 최종 번들 크기(tree-shaking + minifier 품질)를 esbuild, SWC, Bun, Rolldown, Rspack 등과 비교합니다.
측정 환경
섹션 제목: “측정 환경”- Platform:
darwin arm64 - 기준 일시: 2026-05-30
- CLI:
bench.tsmedian 50회, 직접 CLI 바이너리 실행 (npx 오버헤드 제거) - NAPI / WASM / CLI:
napi-bench.tswarmup 10회 + median 100회 - Bundle perf:
bundle-perf.tswarmup 5회 + median 50회, CI와 같은 ZNTC/Rolldown/Rspack same-run 비교 - Cold build / 증분 rebuild:
cold-build.ts/inprocess-rebuild.ts— 1→1000 합성 모듈 + 실제 의존성(lodash-es) fixture 를 esbuild/rolldown 과 in-process programmatic API 로 비교. cold = 캐시 없는 초기 full build(최대 1000-module), 증분 = 캐시 재사용 순수 rebuild(디바운스/watch latency 제외, 최대 100-module — 1000-module 증분은 watch 기반이라 cold 에만 둠). - Pipeline:
pipeline.tsmedian 15회, profile total 기준 - 번들 크기:
smoke.ts --minify-all, 2026-05-30, 실제 npm 라이브러리 9종을 번들 + minify 한 raw 출력 바이트
시간 차트는 낮을수록 빠르며(막대 끝 숫자 = median wall time), 번들 크기 차트는 낮을수록 작습니다(막대 끝 숫자 = raw bytes).
측정 방법
섹션 제목: “측정 방법”zig build -Doptimize=ReleaseFastzig build napizig build wasm
bun run tests/benchmark/bench.tsbun run tests/benchmark/napi-bench.tsbun run tests/benchmark/bundle-perf.ts --no-fail --output bundle-perf.jsonbun run tests/benchmark/pipeline.tsbun run tests/benchmark/cold-build.tsbun run tests/benchmark/inprocess-rebuild.ts
bun run tests/benchmark/smoke.ts --minify-all \ --filter=zod,effect,lodash-es,preact,immer,date-fns,rxjs,mobx,three \ --json=size.json