Iterator Performance

루프와 반복자는 같은 작업을 다른 표현으로 최적화할 수 있다

러스트의 반복자 체인은 추상화처럼 보이지만, 최적화 후에는 손으로 쓴 루프와 가까운 실행 코드가 될 수 있다.

성능 비교 관점

zero cost

루프 방식

상태 변화를 직접 쓰기 때문에 실행 순서가 눈에 바로 보인다.

반복자 방식

map, filter, collect로 데이터 흐름을 선언적으로 표현한다.

최적화

컴파일러가 체인을 인라인하고 불필요한 중간 값을 줄일 수 있다.

측정

감이 아니라 벤치마크로 입력 크기와 환경별 차이를 확인한다.

inputloopitermeasure
읽는 법

성능 비교는 문법 취향이 아니라 측정 문제다. 같은 입력에서 같은 결과를 만들고, 실행 시간과 할당을 함께 봐야 한다.