2009-05-29 1 views
5

가능한 중복 :
Why does C++ compilation take so long?Java의 어떤 특성을 사용하여 비교 가능한 C++ 프로그램보다 훨씬 빠르게 빌드 할 수 있습니까?

내가 같은 크기 (LOC)에 대한 두 가지 프로젝트를하고 있어요. Ant를 사용하는 Java 빌드 프로세스는 몇 분 만에 측정됩니다. CMAKE 도구를 사용하는 C++ 빌드 처리는 몇 시간 내에 측정됩니다.

Java의 어떤 특성으로 비교 가능한 C++ 프로그램보다 훨씬 빠르게 빌드 할 수 있습니까?

+0

C++은 어셈블리의 유용성과 사용 편의성을 결합한 집합체입니다. – Jherico

답변

3

this question이 도움이 될 수 있습니다. 허용 된 대답은 java와의 비교를 강조하지 않지만 C++이 오래 걸리는 일에 대해 꽤 추측 할 수 있습니다.

+0

링크는 매우 잘 답변을 생각했다. 감사! – Jon

4

필자는 헤더 파일의 킬로 라인이 없다는 것이 많은 관련이 있다고 생각합니다.

+1

그리고 전처리 기가 일반적입니다. – luiscubal

+0

프리 컴파일 헤더가 여기에 도움이 되겠지요? – dfa

+0

@dfa : 그래, 움큼. – chaos

4

다른 최적화 전략

자바 코드는 일반적으로 컴파일시에 C/C++ 코드만큼 최적화되어 있지 않습니다. 즉, Java 바이트 코드는 C/C++ 컴파일러에서 방출되는 "유사한"원시 코드보다 "최적화되지 않았습니다". JVM의 Just In Time (JIT) 컴파일러는 런타임시 바이트 코드 성능을 높이기 위해 최적화를 수행합니다.

-2

와우, 이되어 다른 프로젝트에서 발생하지 않는 CMAKE 파일에서 진행되고 있습니다. 자동화 된 테스트 케이스가 실행되고 있습니까? C++ 코드보다 더 빠른 (또는 어떤) 명령을 컴파일 할 수있는 Java에 대한 근본적인 것은 없습니다.

+0

편집은 아니지만 때로 시간이 걸리는 링크입니다. – mkb

+0

당신이 틀립니다. – Malfist

+0

Pwned! 무식한 추측을 위해 나를 맞이한다 – AgileJon

2

그냥 같은 LOC를 가지고 있다고해서 건물에 같은 시간이 걸릴 것임을 의미하지는 않습니다. 예를 들어, C++에서 windows.h와 같은 큰 헤더 파일을 추가하면이 한 줄에 훨씬 더 많은 빌드가 필요합니다.

4

템플릿이 특히 컴파일 속도가 느립니다.

관련 문제