gcc 의 옵티마이징 파라미터인 -O2 와 -O3 중 어느게 더 빠른가?
글쓴이: ssehoony / 작성시간: 화, 2005/06/14 - 5:18오후
-O2 와 -O3 의 차이는 inline 확장을 하느냐 안하느냐로 알고 있는데 그렇다면 당연히 -O3 가 빠를거라고 추측을 하는데요.
간혹 이야기를 들어보면 inline 이 오히려 실행코드 사이즈를 늘려서 실행코드가 적제된 page 가 늘어나 오히려 비 효율성을 가져올 수도 있다 라는 것 까지는 알겠습니다.
하지만 그렇다고 해도 -O2 보다는 -O3 가 빠를 것 같은데, -O2 로 컴파일 하는 라이브러리들을 적지 않게 봐서 도통 어느게 더 좋을지 모르겠네요.
과연 어느쪽이 release 용으로 더 좋은 건가요?
Forums:
inline으로 인한 code bloat 효과를 알고 계신다면 O3가 "
inline으로 인한 code bloat 효과를 알고 계신다면 O3가 "당연히" 더 빠를 것이라고
할 수는 없지 않나요? 환경에 상당히 의존적인 부분이라 해보기 전에는 모르는 일이므로
보수적인 선택을 하는 것으로 생각합니다.
Cache 를 고려하면 상관 관계를 대강 알 수 있죠.
Cache 를 고려하면 상관 관계를 대강 알 수 있죠.
근데 여담이지만...
Bjarne책에서는 특별한 수학적 구현이 아니면 inline함수는 되도록 쓰지말도록 권장하고 있군요!
Herb Sutter도 막연히 빠르겠거니 하는 생각으로 inline을 쓰
Herb Sutter도 막연히 빠르겠거니 하는 생각으로 inline을 쓰는 것을
premature optimization으로 보고 있습니다. 프로파일링으로 성능 향상을
확인한 후에나 쓰라고 말하죠. 비슷한 얘기로
Do inline functions improve performance?
댓글 달기