kyuseo의 게임 프로그래밍

Kyuseo의 C++ 프로그래밍(코딩) 최적화 원칙 본문

C++ 개발

Kyuseo의 C++ 프로그래밍(코딩) 최적화 원칙

kyuseo 2007. 12. 11. 13:24

개요..

 

프로그래밍을 공부하다 보면 코드 최적화에 관한 글들이 많습니다. 그 대부분은 이론적으로는 올바른 말이지만, 최적화를 위한 코드를 작성하다 보면 코드가 지저분해지는 경향이 발생됩니다.

 

하지만 최근 컴파일러의 성능이 좋아지면서 대부분의 최적화는 알아서 잘하기 때문에 그것을 활용하는 편이 좋을 경우가 많습니다.

 

 

최적화 원칙:

 

- CPU 부하가 큰 반복작업은 최대한 최적화 코드로 작성하라.

- 코딩 수정으로 최적화를 하지 말고 알고리즘으로 최적화를 하라.

- 더 빠른 속도가 필요하다면 어셈블리(Assembler) 언어를 사용하라

- 코드의 최적화보다는 코드의 유지보수를 우선하라.

- 사소한 최적화에 시간과 노력을 투자하지 말아라.

- 중복코드를 최소화 하라.

- inline을 활용하라.

 

 

괜한 최적화로 인한 코드의 예

 

이론상 최적화 코드:

 

변수를 for 구문 밖에서 선언한다.

 

DWORD n;

for( int i=0; i<100; i++ )

{

    n = a[i].GetCount();

    … n 에대한 처리

}

 

 

 

최적화 코드는 아니지만 속도상 아무런 상관없는 코드:

 

변수를 필요한 시점에서 선언한다.

 

for( int i=0; i<100; i++ )

{

    DWORD n = a[i].GetCount();

    … n 에대한 처리

}

 

 

릴리즈(Release)로 컴파일 하면 동일한 어셈블리 코드가 나옵니다. 따라서 필요한 시점에서 변수를 선언하여 사용하면 코드의 미적 감각을 올릴 수 있습니다.