2010-08-21 3 views
2

컴파일 속도에 거의주의를 기울이지 않고 오히려 컴파일 시간이 느려지는 순서로 최대의 최적화를 추구하는 컴파일러가 있습니까?컴파일 시간에 신경 쓰지 않는 옵티 마이저가 있습니까?

최종 릴리스에 가까워지면 컴파일/시간/분/초가 큰 문제가되지 않는다고 생각됩니다. (당신은 충분히 테스트가 있다면, 그것은에 안전합니다.)


편집 : 내가 관심이 최적화가 겸손 측의 프로그램에 실행 시간 또는 며칠이 걸릴 수 있습니다 전달 포함 컴파일러 (무엇 리눅스 커널, 아파치 또는 GCC와 같은 정상적인 최적화로 10 분 또는 그 이하의 시간이 소요되는 것들). 그들은 "느린"입니다 어느 정도

+0

어떤 언어로 제공됩니까? 나는 optimizer를 사용하는 것보다 훨씬 더 많은 시간이 걸리는 컴파일러를 확실히 사용했다. 또한 Coverity와 같은 정적 분석기를 고려하십시오. –

+2

느린 최적화 도구가 있습니까? 물론, 그들은 사람들이라고 불립니다! –

+0

실제로 사람들은 더 빠른 옵티 마이저입니다. 최적화 된 버블 정렬은 여전히 ​​느립니다. –

답변

2

는 그 컴퓨터가 너무 빨리 그리고 당신이 예전처럼 당신은 통지를하지 않는 등 방대한 메모리의 소유 그냥 ...

는 :: 할 오프 실행 ++ g와 약간의 실험 ::

내가 일을 쓴 약간 mathy 코드를 따기 나는 (약 24K ROOT 라이브러리의 무거운 사용을 75ish 파일에서 C++에서 LOC,하지만 템플릿)

  • -O0 : 8.88 초
  • -O4 : 13.60 초
  • -Os
  • : 11.32 초

흠은 ... 컴파일 시간의 많은 부분을 추가하지 않습니다. 아마도 파일 액세스 시간이 지배적 일 것입니다. 어쩌면 나는 mplayer 또는 다른 무엇인가를 집중적으로 시도해야합니다.

4

사실, 그렇습니다. 최적화 프로그램이 느리기 때문에가 아니라 옵티마이 저가 부탁하는 것이 필연적으로 오랜 시간이 걸리기 때문입니다. 예를 들어 LLVM을 사용하여 전체 프로그램을 최적화합니다. 소스 파일이 컴파일 된 모든 파일뿐만 아니라 소스 파일도 사용합니다. 모든 것이 중간 코드로 연결되어 함께 최적화됩니다. 이 최적화는 개별적으로 최적화 된 오브젝트 파일을 연결하는 것보다 현저하게 느립니다. 하지만 두 가지 이유가 있습니다. 1, 최적화가 전체 프로그램에 대해 수행되고 기다림 (;-)의 가치가 있습니다. 2, 컴퓨터가 항상 빠릅니다.

+0

왜 그들이 느린 지 묻지는 않지만 왜 느리지는 않은지? 나는 CPU를 가지고 있는데, 왜 그것을 사용하지 않습니까? – BCS

+0

내가 할 수 있다니. 필자의 경우 극단적 인 최적화 (TM)는 프로그램이 외부 저장소가없는 pic32에서 실행될 수 있음을 의미합니다. 3Ghz 프로세서 및 "무제한"스토리지를 사용하는 대부분의 사람들은 옵티 마이저가 시간/공간을 절약 할 때까지 기다릴 필요가 없습니다. –

+0

어떤 종류의 속도가 느려 집니까? 10 배? – BCS

관련 문제