Repolode
ionelmc

ionelmc/pytest-benchmark

pytest 테스트에서 Python 함수의 실행 시간을 측정하는 benchmark fixture를 제공하는 pytest 플러그인입니다.

스타
1,459
포크
139
열린 이슈
125
마지막 커밋
6일 전

어떤 프로젝트인가요?

pytest-benchmark는 pytest에 benchmark fixture를 추가합니다. 함수을 fixture에 전달하면 선택한 타이머에 맞춰 실행 횟수를 보정하고, 여러 라운드로 나누어 반복 실행한 뒤 pytest 요약 출력에 측정 결과를 표시합니다.

fixture는 위치 인수와 키워드 인수를 모두 받을 수 있으며, pedantic 모드에서는 setup 함수, 반복 횟수, 라운드 수를 직접 제어할 수 있습니다. 이전 실행 결과와 비교할 수 있고, 측정 시간 분포의 히스토그램도 생성할 수 있습니다.

pytest와 통합되므로 벤치마크를 일반 테스트 함수로 작성하고 평소처럼 pytest 명령으로 실행할 수 있습니다. 이 플러그인은 함수 하나를 벤치마크하므로, 더 큰 코드 블록을 측정하려면 함수로 감싸야 합니다.

핵심 기능

  • 01pytest 테스트에서 함수 호출 시간을 측정하는 benchmark fixture를 제공합니다.
  • 02선택한 타이머에 맞춰 보정된 라운드별로 측정값을 묶습니다.
  • 03사용자 지정 setup, 반복 횟수, 라운드 수를 설정할 수 있는 pedantic 모드를 제공합니다.
  • 04이전 벤치마크 실행 결과와 비교할 수 있습니다.
  • 05측정 결과의 히스토그램을 생성할 수 있습니다.

활용 사례

  • 커밋에 따른 Python 함수의 성능 저하를 추적합니다.
  • 테스트 스위트에서 동일한 함수의 두 구현을 비교합니다.
  • 기존 pytest 작업 흐름을 유지하면서 라이브러리의 핫패스를 측정합니다.

빠른 시작

  1. 1

    PyPI에서 플러그인을 설치하세요

    pip install pytest-benchmark

사용 전 알아둘 점

  • 단일 함수만 벤치마크하므로, 프로그램 전체나 코드 블록을 벤치마크하려면 래퍼 함수가 필요합니다.

토픽

자주 묻는 질문

pytest-benchmark은(는) 무엇인가요?
pytest 테스트에서 Python 함수의 실행 시간을 측정하는 benchmark fixture를 제공하는 pytest 플러그인입니다. pytest-benchmark는 pytest에 benchmark fixture를 추가합니다. 함수을 fixture에 전달하면 선택한 타이머에 맞춰 실행 횟수를 보정하고, 여러 라운드로 나누어 반복 실행한 뒤 pytest 요약 출력에 측정 결과를 표시합니다.
pytest-benchmark은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
pytest-benchmark은(는) BSD-2-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
pytest-benchmark은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. pytest-benchmark의 마지막 커밋은 2026년 11월 1일입니다.
pytest-benchmark은(는) 어디에 사용할 수 있나요?
커밋에 따른 Python 함수의 성능 저하를 추적합니다. 테스트 스위트에서 동일한 함수의 두 구현을 비교합니다. 기존 pytest 작업 흐름을 유지하면서 라이브러리의 핫패스를 측정합니다.
pytest-benchmark는 어떻게 설치하나요?
PyPI에서 플러그인을 설치하세요: pip install pytest-benchmark
pytest-benchmark은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/ionelmc/pytest-benchmark

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트