# Tinybench - 경량 자바스크립트 벤치마킹 라이브러리

> Clean Markdown view of GeekNews topic #24989. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24989](https://news.hada.io/topic?id=24989)
- GeekNews Markdown: [https://news.hada.io/topic/24989.md](https://news.hada.io/topic/24989.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-12-11T09:46:02+09:00
- Updated: 2025-12-11T09:46:02+09:00
- Original source: [github.com/tinylibs](https://github.com/tinylibs/tinybench)
- Points: 8
- Comments: 1

## Summary

**Tinybench**는 10KB 이하의 크기로 설계된 초경량 자바스크립트 벤치마킹 라이브러리입니다. `performance.now`나 `process.hrtime`을 활용해 정밀한 타이밍을 측정하며, Node.js·Deno·Bun 등 다양한 런타임에서 동일하게 동작합니다. 평균·표준편차·백분위수 등 **통계 기반 분석 기능**을 내장해 코드의 지연과 처리량을 세밀하게 파악할 수 있고, 이벤트 기반 구조로 확장이 용이합니다. 외부 의존성이 없어 빠르게 초기화되며, 기존 Benchmark.js보다 훨씬 단순한 **Web API 친화적** 접근을 제공합니다.

## Topic Body

- 코드 성능을 정밀하게 측정하기 위해 개발된 **10KB 이하의 초경량 벤치마킹 도구**  
- **Web API 기반**으로 동작하며, `process.hrtime` 또는 `performance.now`를 활용한 **정확한 타이밍 측정** 지원  
- Node.js, Deno, Bun 등 다양한 **JavaScript 런타임 환경에서 실행 가능**  
- **통계 기반 분석 기능** 제공 : 평균, 표준편차, 오차 한계, 분산, 백분위수 등 **지연(latency)** 및 **처리량(throughput)** 계산 지원  
- **동시성(concurrency)** 실행 모드 : `task` 단위 또는 `bench` 단위로 병렬 실행 가능, `threshold` 옵션으로 최대 동시 실행 수 제어  
- **이벤트 기반 구조**로 확장 가능 : `Bench`와 `Task` 클래스가 **EventTarget**을 상속하며, `cycle`, `abort` 등 이벤트 리스너 등록 가능  
- **비동기 함수 자동 감지** : `AsyncFunction` 또는 `Promise` 반환 여부를 검사해 자동으로 async 모드 설정  
- **결과 시각화 및 변환** : `bench.table()` 메서드로 `console.table()` 출력 포맷 변환하며, 사용자 정의 **Converter 함수**로 출력 형식 커스터마이징 가능  
- `retainSamples` 설정 시 원시 샘플 데이터를 그대로 유지하며, 커스텀 분석, 그래프 시각화, 결과 내보내기 등에 활용 가능  
- **정밀한 타임스탬프 제공자(timestamp provider)** 선택 가능  
  - 기본값은 `performance.now()`  
  - `hrtimeNow`, `bunNanoseconds`, `auto` 등 런타임별 최적화 옵션 지원  
  - 사용자 정의 **TimestampProvider 인터페이스** 구현 가능  
- **AbortSignal 기반 중단 제어** 지원  
  - 벤치 전체 또는 개별 태스크 단위로 **실행 중단(abort)** 가능  
  - 중단 시 `abort` 이벤트 발생 및 상태 플래그(`task.result.aborted`) 설정  
- 외부 라이브러리 의존성 없는 단일 패키지 구조로 빠른 초기화 및 실행 속도 보장  
- **Benchmark.js**, **mitata**, **tatami-ng**, **Bema** 대비 **더 작고 단순하며 Web API 친화적**인 설계가 특징

## Comments



### Comment 47582

- Author: shakespeares
- Created: 2025-12-11T14:13:33+09:00
- Points: 1

이제 이런게 필요한가 싶네요. AI가 그 때 그 시기에 맞는 performance 측정에 대한 스크립트를 워낙 잘 짜줘서요..
