2010-12-31 4 views
1

C++에서 코드를 최적화하는 기술은 무엇입니까?C++에서 코드를 최적화하는 기술은 무엇입니까?

+1

굉장히 광범위한 질문입니다. –

+0

"조기 최적화는 모든 악의 뿌리"가이들에 의해 아래로 투표 될 것이기 때문에 이것은 답이 아닙니다 : 나는 깨끗하고 직선적 인 코드를 작성하지만 문맥에 따라 느린 것을 피하려고 노력합니다 (즉, 일부 컨텍스트에서 나는 다른 사람에게 새로운/삭제를 피하려고 노력하지 않는다. [성능이 얼마나 중요한가에 달려있다.] – mmmmmmmm

+1

다음 링크 http://www.agner.org/optimize/에서 읽으십시오. 언급 한 모든 단일 최적화 작업을 수행 할 수 있으므로 시도하지 마십시오. –

답변

6
  1. 코드를 작성
  2. 프로필 코드
  3. 조정할 성능 핫스팟
  4. ) 2
2

병목 현상이 발생할 때까지 가장 중요한 기술은 최적화되지 않습니다. 충분히 빠르지 못해 여전히 경우

4

1 단계 내가 할 수있는 가장 깨끗하고 가장 간단한 코드를 작성로 이동 .
2) 최적화 된 설정으로 최신 컴파일러를 사용하십시오.
3) 완료하십시오.

선택 사항 :
4) 눈에 띄게 느린 부분이 있다고 생각되면 제 신청서를 작성하십시오.
5) 내 프로파일 결과를 사용하여 느린 점을 찾아 수정하십시오.
6) 가능한 한 깨끗하고 직선적이어야합니다.
7) 완료하십시오.

+1

이 중 6 단계는 (IMO) 훨씬 어렵습니다. 무겁게 손에 최적화 된 코드를 깨끗하고 간단하게 만드는 것은 놀라 울 정도로 어렵습니다. 그것은 또한 엄청난 즐거움입니다 .-D –

+0

3 번 지나야 만했던 횟수는 내 손에 달려 있습니다. -O4는 언제나 좋습니다. 선반에있는 Knuth의 복사본은 컴파일러가 할 수없는 올바른 알고리즘을 선택하는 데 종종 유용하며 O (n.ln (n))은 항상 o (n^2)보다 우수합니다. –

+0

@Martin : O (nlogn)이 평균의 경우 qsort와 버블 정렬. 역순으로 정렬 된 숫자는 qsort를 O (n^2)로 줄입니다 ...... –

0

코딩 표준을 따르십시오. 한번 보시려면 http://sourcemaking.com/

+1

이 질문과는 아무런 관련이 없습니다. –

+0

Infact 메이트, 그렇습니다. 어떤 언어를 코딩하든, 기본을 올바르게 이해하면 코드가 최적화됩니다. 그 외에도 각 프로젝트에는 단순히 질문을 통해서가 아니라 경험을 통해서만 배울 수있는 다양한 최적화 규칙/기법이 있습니다. – Samnan

+2

@Samnan : 효율적으로 작성하면 코드가 최적화됩니다. 코딩 표준은 일반적으로 성능보다 다른 특성을 강조합니다. Java에서 흔히 볼 수있는 "베스트 프랙티스"를 따르는 경우, 프로그램은 끝없는 추상화 계층을 통과하는 데 소요되는 시간의 95 %를 소비합니다. 그것은 빠르지 않을 것이지만 많은 사람들의 지침을 따를 것입니다. – jalf

관련 문제