Debugging Applications For Microsoft Windows 책에 보면 O1최적화 (크기 최소화)가 O2최적화(속도 최대화)보다 더 빠르다고 나와있다..

정말????


책에 보면 대략 실행파일의 이미지 크기가 작으면 page fault를 더 적게 일으키므로 더 빠르다라고 나와있다..

음.. 맞는말이다.. page fault가 일어날 경우에는 OS가 프로그램 실행에 필요한 데이터를 page file에서 실제 메모리에 load하기 위해서 엄청난 오버헤드가 발생한다..

그렇지만 고작 몇백킬로 차이밖에 안나는 것이 얼마나 눈에 띄게 속도 차이가 날까? 라는 의문이 마구마구 들었다..

그래서 테스트를 해봤다..

우선 테스트 프로그램을 만들어야하는데.. 대략 만들기는 귀찮고 해서 GUI를 이용하기로 했다.. GUITester에서 상단에 프레임률을 표시하기 때문에 이를 확인해보면 된다.

그래서 우선 프로젝트 세팅에서 아래와 같이 O2 최적화로 세팅을 했다.



그리고 컴파일.................................................


그리고나서 바이너리의 크기를 확인했다.



대략 1메가 정도 한다..
그럼 이제 실행을 해보자..



음.. 약 262프레임정도 나온다..



그럼 이제 O1로 컴파일을 해보자... 우선 프로젝트 세팅을 하고..



그리고 컴파일.............................

그리고나서 바이너리 크기 확인



약간 줄었다.. 70kb정도 ㄱ- 이정도로 정말 속도 차이가 날까???

그리고 실행...



엇!!!!! 이게 무슨일인가.. 미약하지만 정말 O2보다 프레임률이 올라갔다...

혹시나 하여 두세번 반복해서 재컴파일을 하여 비교를 해봤지만 확실히 차이가 보였다..

그렇지만 내가 생각하기에 page fault때문에 성능 차이가 나는것 보다는 바이너리의 크기가 작아지면서 CPU의 명령어 캐시히트율이 올라가서가 아닌가 하는 생각이 든다..

아마 항상 O1이 O2보다 빠르진 않을거라 본다.. 실제로 어떤게 더 빠른지는 테스트를 통하여 최적의 최적화 옵션을 선택해야 할 것이다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2006/06/21 22:04 2006/06/21 22:04

트랙백 주소 :: http://dcple.com/blog/trackback/105

댓글을 달아 주세요

  1. 요즘 제가 '응용 운영체계개념'(이른바 공룡책)을 보고 있는데 page fault에 따른 작업이나 이와 관계된 작업이 만만치 않다는 것을 보았습니다. 실제 프로그램에서 차지하는 메모리나 실행시 OS에 사용 중인 메모리량에 따라서 page fault에 의한 영향이 크지 않을까 생각합니다.

  2. 음.. 저도 page fault가 일어날시 발생하는 오버헤드는 어마어마 하다는걸 알고 있습니다.. 그런데 제가 궁금한건 과연 실제로 page fault가 일어났을까 하는 것입니다.. 저 프로그램이 정확한건 아니지만 작업관리자에서 봤을때 약 14메가 정도 메모리를 먹고 있었으며 작업관리자에서 확인했을 때 남은 물리메모리는 300메가였습니다. 흠...

  3. ^^ 잘 봤습니다. 10프레임정도 차이면 +_+ 으흐 좋은 정보 감사합니당

  4. 이동석 2006/06/22 11:27  수정/삭제 댓글쓰기 댓글주소

    좋은 글 잘 읽고 갑니다. 개인 학습을 목적으로
    이글 제 블로그에 담아 갑니다.

  5. 이동석 2006/06/22 11:29  수정/삭제 댓글쓰기 댓글주소

    블로그 주소는 http://blog.naver.com/egohim 입니다~

  6. 양한길 2006/06/23 17:19  수정/삭제 댓글쓰기 댓글주소

    글 잘 읽었습니다.
    스크랩해도 되겠습니까?
    http://oneway48.egloos.com/
    혼자만 들어가는 블로그입니다.

  7. 물론 스크랩하셔도 좋습니다!

  8. 스크랩 좀 해가겠습니다...꾸벅~

    • 션♡ 2007/04/17 03:06  수정/삭제 댓글주소

      맘껏 해가세욤~
      아마 주인장의 기쁨일걸요~
      훈련 받는 동안에도 이래~
      세상에 쓰일 곳이 많은 자랑스런 돌열씨,ㅠ
      뿌듯뿌듯, ㅠ

  9. 알고 싶은 정보였는데~
    좋은 정보 감사합니다. :)
    출처 남기고 퍼갈게요 =ㅅ=

[로그인][오픈아이디란?]