벤치마크(benchmark)는 컴퓨팅에서 특정 오브젝트(하드웨어 또는 소프트웨어 등)에 대해 일반적으로 수많은 표준 테스트와 시도를 수행함으로써 오브젝트의 상대적인 성능 측정을 목적으로 컴퓨터 프로그램을 실행하는 행위이다.[1]
'벤치마크'라는 용어는 정교하게 설계된 벤치마킹 프로그램 자체의 목적으로 일반적으로 사용된다.
벤치마킹은 일반적으로 컴퓨터 하드웨어의 성능 특성(예: CPU의 부동 소수점 연산 성능)을 평가하는 것과 관련이 있지만 이 기술이 소프트웨어에도 적용되는 경우가 있다. 예를 들어 소프트웨어 벤치마크는 컴파일러나 데이터베이스 관리 시스템(DBMS)에 대해 실행된다.
벤치마크는 다양한 칩/시스템 아키텍처 전반에 걸쳐 다양한 하위 시스템의 성능을 비교하는 방법을 제공한다. 지속적 통합의 일부인 벤치마킹을 지속적 벤치마킹(Continuous Benchmarking)이라고 한다.[2]
기능
벤치마킹 소프트웨어의 기능에는 성능 과정을 스프레드시트 파일로 기록/내보내기, 선 그래프 그리기 또는 색상으로 구분된 타일과 같은 시각화, 다시 시작하지 않고도 재개할 수 있도록 프로세스 일시 중지 등이 포함될 수 있다. 소프트웨어는 해당 목적에 맞는 추가 기능을 가질 수 있다. 예를 들어, 디스크 벤치마킹 소프트웨어는 선택적으로 전체 디스크가 아닌 디스크의 지정된 범위 내에서 디스크 속도 측정을 시작하고, 무작위 액세스 읽기 속도 및 레이턴시를 측정하고, 지정된 간격과 크기의 샘플을 통해 속도를 측정하고 데이터 블록 크기(읽기 요청당 요청된 바이트 수를 의미)를 지정할 수 있는 "빠른 스캔" 기능이 있다.[3]
↑Fleming, Philip J.; Wallace, John J. (1986년 3월 1일). “How not to lie with statistics: the correct way to summarize benchmark results”. 《Communications of the ACM》 29 (3): 218–221. doi:10.1145/5666.5673. ISSN0001-0782. S2CID1047380.