다음을 통해 공유


코드 최적화

실행 파일을 최적화하여 실행 속도는 높이면서 코드 크기는 작게 할 수 있습니다. 이 항목에서는 코드 최적화를 위해 Visual C++에서 제공하는 몇 가지 메커니즘에 대해 설명합니다.

언어 기능

다음 항목에서는 C/C++ 언어의 몇 가지 최적화 기능에 대해 설명합니다.

  • 최적화 pragma 및 키워드
    코드에 사용하여 성능을 향상시킬 수 있는 키워드 및 pragma의 목록입니다.

  • 컴파일러 옵션 범주별 목록
    특히 실행 속도나 코드 크기에 영향을 주는 /O 컴파일러의 목록입니다.

  • Rvalue Reference Declarator: &&
    Rvalue 참조는 의미 체계 이동의 구현을 지원합니다. 의미 체계 이동을 사용하여 템플릿 라이브러리를 구현하면 해당 템플릿을 사용하는 응용 프로그램의 성능을 상당히 향상시킬 수 있습니다.

최적화 pragma

코드의 최적화된 한 섹션으로 인해 오류가 발생하거나 속도가 느려지는 경우에는 optimize pragma를 사용하여 해당 섹션에 대해 최적화가 적용되지 않도록 할 수 있습니다.

다음과 같이 두 pragma 사이에 코드를 포함합니다.

#pragma optimize("", off)
// some code here 
#pragma optimize("", on)

프로그래밍 방법

또한 최적화와 함께 코드를 컴파일하면 경고 메시지가 나타날 수도 있습니다. 이는 최적화된 코드에만 관련되기 때문이며 예상된 동작입니다. 이러한 경고에 주의하면 여러 가지 최적화 문제를 방지할 수 있습니다.

프로그램 속도를 향상시키려고 최적화를 했는데 코드가 더 느리게 실행되는 경우도 있습니다. 이는 속도 향상을 위해 최적화하면 코드가 커지는 경우가 있기 때문입니다. 예를 들어 함수를 인라이닝하면 함수 호출의 오버헤드는 제거되지만 너무 많은 코드를 인라이닝하면 프로그램 크기가 너무 커져서 가상 메모리 페이지 폴트가 증가할 수 있습니다. 따라서 함수 호출을 제거함으로써 빨라진 속도가 메모리 스와핑으로 인해 느려질 수 있습니다.

다음 항목에서는 좋은 프로그래밍 방법에 대해 설명합니다.

최적화된 코드 디버깅

최적화를 수행하면 컴파일러에 의해 생성된 코드가 변경될 수 있으므로 응용 프로그램을 디버깅하고 성능을 측정한 다음 코드를 최적화하는 것이 좋습니다.

다음 항목에서는 디버깅 방법에 대한 기본 정보를 제공합니다.

다음 항목에서는 디버깅 방법에 대한 고급 정보를 제공합니다.

다음 일련의 항목에서는 코드 빌드, 로드 및 실행을 최적화하는 방법에 대한 정보를 제공합니다.

참고 항목

기타 리소스

C/C++ 빌드 참조