매우 서버 박스 (총 32 코어 또는 64 코어)에서 C++ 코드를 컴파일하고 있기 때문에 컴파일 시간을 단축하기 위해 컴파일러 옵션을 조정하는 방법이 있습니까? 예 : 여러 스레드를 사용하여 독립적 인 .cpp 파일을 컴파일하도록 컴파일러에 지시합니다.Solaris Sun Studio 12에서 C++ 컴파일 시간을 단축 할 수있는 방법이 있습니까?
4
A
답변
4
Sun Studio에는 포함 된 dmake
버전의 make에서 병렬 빌드가 지원됩니다. 자세한 내용은 the dmake manual을 참조하십시오.
4
사용중인 툴체인에 따라 다릅니다.
GNU Make를 사용하는 경우 make 호출에 -j 32
을 추가하여 32 개 작업 (예 :)을 병렬로 시작하도록 알려주십시오. 결과적으로 RAM을 소모하지 않고 스왑 파일을 스 래싱하지 않는지 확인하십시오.
3
이러한 종류의 멀티 스레드를 수행하는 Boost JAM과 같은 기능을 사용하고 멀티 스레드 작성보다 훨씬 효율적으로 내 경험을 활용하십시오.
0
Sun의 C++ 컴파일러에는 컴파일러가 내부적으로 여러 스레드를 포크 화하는 -xjobs
옵션이 있습니다. 이것이 효율적이기 위해서는 모든 .cc 파일을 CC의 단일 호출에 전달해야 할 것입니다.
dmake -j 64는 컴파일 시간을 2 분에서 4 초로 줄였습니다. 환상적입니다. – Steve