hyperfine 은 커맨드 라인용 벤치마킹(benchmarking) 툴입니다.


command line 에서 명령어를 실행했을 경우 소요 시간과 성능을 측정하는데 도움이 되며 shell 의 time 명령어와 유사한 기능을 제공합니다.


설치

아직 패키지 매니저를 지원하지 않는 경우가 많으므로 그냥 cargo 로 빌드하는 게 더 유용합니다.

cargo install hyperfine
BASH

사용

기본 사용

사용은 성능을 측정하려는 프로그램 명과 옵션을 주고 실행해 주면 됩니다. 다음은 0.3 초간 sleep 하는 명령어를 반복해서 실행하고 결과를 표시해 줍니다.

$ hyperfine 'sleep 0.3'

Benchmark #1: sleep 0.3
  Time (mean ± σ):     304.9 ms ±   2.1 ms    [User: 1.5 ms, System: 3.0 ms]
  Range (min … max):   300.8 ms … 306.3 ms    10 runs
BASH

hyperfine 은 기본적으로 10번을 반복 실행한 후에 평균을 내며 반복 실행 횟수를 수정하려면 -m, --min-runs 옵션을 사용해서 횟수를 지정해 주면 됩니다.

다음은 0.3초간 sleep하는 명령어와 1 초간 sleep 하는 명령어를 각각 5번씩 실행해서 성능을 측정합니다.

$ hyperfine -m 5 'sleep 0.3' 'sleep 1.0'
BASH

warm up & preparation 지정

성능에 영향을 주는 Disk I/O 등을 최소화하기 위해 -w, --warmup 옵션으로 워밍업 시간을 지정할 수 있습니다.

$ hyperfine --warmup 3 'grep -R TODO *'
BASH


병렬 측정


결과 저장

성능 측정 결과를 파일로 저장할 수 있으며 저장하려는 파일 형식에 맞는 옵션을 사용하면 됩니다. 예로 다음은 결과를 markdown 형식으로 result.md 에 저장합니다.

$ hyperfine -m 5 'sleep 0.3' 'sleep 1.0' --export-markdown result.md
BASH

추가로 사용할 수 있는 옵션은 다음과 같습니다.

  • --export-asciidoc 
  • --export-csv
  • --export-json

같이 보기

Ref