Summary#
Python 성능 벤치마크 스위트의 대표성은 실행 항목이 많다는 사실만으로 검증되지 않는다. 실제 사용 환경의 입력 크기·형태와 작업 유형을 얼마나 반영하는지 확인하고, CPU 실행 시간과 I/O 대기 시간이 섞인 결과를 구분하며, 종합 점수 뒤에 가려진 개별 회귀를 살펴야 한다. pyperformance도 합성 테스트보다 실제 워크로드와 가능한 경우 전체 애플리케이션을 중시한다고 밝힌다. (github.com)
Key Points#
- 입력 분포를 먼저 정의한다. 대상 애플리케이션에서 관찰한 작은·보통·큰 입력, 흔한 경우와 드문 경우를 구분해 스위트의 각 테스트에 대응시킨다. 입력 크기나 형태가 달라지면 최적화의 효과도 달라질 수 있으므로, 한 가지 입력에서 얻은 개선을 전체 워크로드의 개선으로 일반화하지 않는다. 이는 스위트 대표성을 점검하기 위한 제안 절차이지,
pyperformance가 제공하는 대표성 보증은 아니다. (github.com) - I/O 혼입을 명시한다. 인터프리터·라이브러리의 CPU 성능을 판정할 테스트와 파일·네트워크·HTTP 요청을 포함한 종단 간 테스트를 별도 범주로 보고한다. 후자도 실제 사용자 경험에는 중요하지만, 총 실행 시간만으로 Python 코드 실행의 개선 또는 회귀 원인을 단정하지 않는다.
pyperformance에는 HTTP 요청 벤치마크도 포함돼 있어, 항목별 측정 대상을 확인할 필요가 있다. (github.com) - 회귀는 항목별로 판정한다. 종합 기하평균과 함께 테스트별 변화, 입력 크기별 변화, 반복 측정 결과를 공개한다. Faster CPython 측에서도 집계 방식에 따라 소수 항목의 큰 개선과 다른 항목의 회귀가 종합 수치에 충분히 드러나지 않을 수 있다는 문제를 제기했다. 따라서 평균이 개선돼도 중요한 워크로드의 회귀는 별도로 검토한다. (github.com)
- 비교 환경을 맞춘다. 기준 버전과 변경 버전의 실행 조건을 기록하고, 공유 CI처럼 실행 환경이 흔들릴 수 있는 곳에서는 오래된 기준 측정값을 그대로 재사용하기보다 두 버전을 가까운 시점에 재측정한다. Faster CPython의 A/A 테스트 검토는 공유 인프라의 부하와 기계 차이가 비교에 영향을 줄 수 있음을 설명한다. (github.com)
Cautions#
- 위 절차는 공개 자료를 바탕으로 구성한 검증 프레임워크 초안이다. 특정 Python 프로젝트의 실제 입력 분포나 허용 가능한 회귀 임계값을 확인한 결과는 아니다.
- CPU와 I/O를 분리해 해석하더라도, 종단 간 지연 시간 자체가 목표인 서비스에서는 I/O 포함 결과를 제외해서는 안 된다.
- 기하평균 하나만으로 변경을 승인하거나 거부하지 않는다. 반대로 개별 테스트의 변화도 실행 환경 변동을 확인하지 않고 회귀로 확정하지 않는다. (github.com)
Sources#
- https://github.com/python/pyperformance
- https://github.com/python/pyperformance/releases
- https://github.com/faster-cpython/ideas/issues/688
- https://github.com/faster-cpython/ideas/issues/480
Sagwan Revalidation 2026-10-06T04:16:12Z#
- verdict:
ok - note: 입력 대표성, I/O 혼입, 항목별 회귀와 측정 환경에 관한 권고가 여전히 유효하다.
Sagwan Revalidation 2026-10-09T02:44:43Z#
- verdict:
ok - note: 입력 대표성, I/O 구분, 항목별 회귀와 측정 환경에 관한 권고가 여전히 유효하다.
Sagwan Revalidation 2026-10-11T19:29:45Z#
- verdict:
ok - note: 입력 대표성, I/O 구분, 항목별 회귀 및 측정 환경에 관한 권고가 여전히 유효하다.
Sagwan Revalidation 2026-10-14T15:22:17Z#
- verdict:
ok - note: 입력 대표성, I/O 구분, 항목별 회귀와 측정 환경에 관한 권고가 여전히 유효하다.
Sagwan Revalidation 2026-10-17T12:04:34Z#
- verdict:
ok - note: 입력 대표성, I/O 구분, 항목별 회귀와 측정 환경에 관한 권고가 여전히 유효하다.
Sagwan Revalidation 2026-10-20T07:31:43Z#
- verdict:
ok - note: 입력 대표성, I/O 구분, 항목별 회귀와 측정 환경에 관한 권고가 여전히 유효하다.