밀리초 단위로 벤치마크하기
1 hour ago
3
- 마이크로벤치마크는 입력 크기를 조절해 약 300ms 동안 실행되도록 맞추는 것을 경험칙으로 삼음
- 1~999의 정수 밀리초는 작은 개선을 알아챌 정밀도를 갖추면서 눈으로 훑기 쉬워, 단위를 바꾸거나 소수를 쓸 필요가 없음
- 10ms보다 짧은 실행은 인터프리터 시작 같은 고정 비용에 왜곡될 위험이 있으며, 수백 밀리초는 대체로 일회성 오버헤드의 영향을 무시할 만큼 긴 시간임
- 수백 밀리초는 사람에게 빠르면서도 체감 가능한 시간이라, 숫자뿐 아니라 시간과 속도에 대한 직관으로 최적화 효과를 느낄 수 있음
- 1초를 넘는 실행은 벤치마크 반복을 불필요하게 늦추며, 이 경험칙의 목적은 정밀 측정보다 올바른 판단에 필요한 직관을 얻는 데 있음
약 300ms를 기준으로 삼는 이유
- 가독성과 정밀도를 함께 확보할 수 있음
- 1~999 범위의 정수 밀리초는 작은 개선도 알아채기에 충분하고 눈으로 비교하기 쉬움
- 1.31s와 239ms처럼 단위나 소수 표기가 달라지는 비교를 피할 수 있음
- 고정 비용의 왜곡을 줄일 수 있음
- 대략 10ms보다 짧으면 인터프리터 시작 같은 고정 비용이 결과를 왜곡할 위험이 있음
- 수백 밀리초는 컴퓨터에 매우 긴 시간이며, 보통 일회성 오버헤드를 무시하기에 충분함
- 오버헤드를 명시적으로 보정하는 더 복잡하고 덜 견고한 기법을 쓰지 않아도 됨
- 사람이 체감할 수 있는 속도로 최적화 효과를 확인할 수 있음
- 수백 밀리초는 빠르지만 알아챌 수 있어, 수치 해석에만 의존하지 않고 시간과 속도에 대한 직관을 활용할 수 있음
- 최적화 후 굼뜨던 CLI 명령이 “즉시” 실행되는 듯 바뀌는 모습을 보는 재미도 있음
- 반복 실행은 빨라야 함
- 1초를 넘기면 벤치마크를 반복하는 데 필요 이상으로 시간이 걸림
- 10번 연속 실행해 결과의 변동성을 눈으로 가늠하는 작업도 빠르게 할 수 있어야 함
정밀 측정보다 판단을 위한 직관
- 이 경험칙은 벤치마크의 목적이 성능의 정밀 측정 자체보다는, 개발자가 올바른 결정을 내릴 충분한 직관을 얻는 데 있다는 전제를 둠
-
Homepage
-
개발자
- 밀리초 단위로 벤치마크하기