2012-07-20 2 views
1

저는 여전히 GCC에 대해 처음이고 특정 프로파일 링 스위치를 정확히 어떻게 사용하는지 궁금합니다.이러한 프로파일 링 스위치의 적절한 용도는 무엇입니까?

나는 (-fprofiled-generate/use에 의해 암시된다 어느 것도) -ftree-loop-ivcanon-fivopts에 대한 GCC 매뉴얼 항목을 읽은 나는 그들이 무엇의 (상대적으로) 좋은 생각을하면서 나는 내가 그들을 사용해야하는 위치 모르거나하지 않습니다 내가 그들을 사용해야한다면.

결합 된 컴파일에서 플래그를 사용해야합니까?

g++ Example.cxx -o Example.exe -Wall -ftree-loop-ivcanon -fivopts

컴파일

만?

g++ Example.cxx -o Example.o -c -Wall -ftree-loop-ivcanon -fivopts

아니면 연결 만? 프로파일을 사용하는 경우

g++ Example.o -o Example.exe -Wall -ftree-loop-ivcanon -fivopts

나는 단지이 플래그를 사용 하는가 아니면 그들을 -On와 함께 사용할 수 있습니까?

마지막으로 프로파일 링 할 때 이들을 사용하면 generate 스위치 또는 use 스위치 또는 둘 모두와 함께 사용해야합니까?

답변

1

내 지식에 따르면 컴파일시에만이 값을 사용할 수 있습니다.

0

-ftree-loop-ivcanon-fivopts에만 컴파일, 연결하지 영향을 미치는,하지만 난 당신이 최적화를 사용하지 않는 한 그들은 적어도 -O으로, 아무것도하지 않는 확신 해요. 당신은 아마 당신이 달성하기 위해 노력하고 있으며 정확한 효과 측정을 정확히 알지 못한다면 그냥 대신 개별 이상의 별 옵션을 조정의 -O 또는 -O2 또는 -O3를 사용하고,를 사용할 필요가 없습니다

.

프로필 기반 최적화를 사용하려는 경우 -O 이상의 높은 최적화 수준을 사용하고 싶습니다. 다음과 같은 기본적인 최적화를 사용하지 않는 경우 프로필 데이터를 기반으로 시간을 최적화하는 데 완전히 시간을 낭비합니다. 인라인 및 상수 전파.

+0

하지만 gcc -O0이 기본 최적화이므로 특정 최적화가 필요하지 않은 경우 최적화를 지정할 필요가 없습니다. – neel

+0

@neel, 무슨 뜻인지 모르겠지만'-O0'는 모든 최적화 과정을 비활성화합니다. [대부분의 최적화는 -O 레벨이 명령 행에 설정된 경우에만 가능합니다. 그렇지 않으면 개개인이 최적화 플래그가 지정됩니다. "] (http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) –