_HAS_ITERATOR_DEBUGGING
디버그 버전에서 STL (특히 collection iterating) 로 인해서 무지막지하게 느려지는 경우가 종종 있다. 이때
#define _HAS_ITERATOR_DEBUGGING 0
만으로 두 배 가량의 속도 향상을 얻을 수 있다. STL팁 페이지에 정리된 예제를 통해서 얻은 결과를 살펴보면,
- end() 를 for 안에 포함할 경우 : 234ms
- end() 를 for 바깥쪽에 둘 경우 : 172ms
- accumulate : 31ms
반면 _HAS_ITERATOR_DEBUGGING을 끌 경우,
- end() 를 for 안에 포함할 경우 : 125ms
- end() 를 for 바깥쪽에 둘 경우 : 94ms
- accumulate : 31ms
이 결과로만 본다면 디버그 버전에서, 거대한 컨테이너에 한해, 200% 정도의 속도 향상을 얻은 셈이다. 그러나 가장 빠른 것은 STL 알고리즘을 사용하는 것이라는 것도 잊지 말기 바란다.