2014-11-28 3 views
1

290 프로젝트 (.dproj)의 Delphi 프로젝트 그룹 (groupproj)이 있습니다. 365,000 줄의 코드를 컴파일하는 데 약 90 초가 소요됩니다.Delphi 컴파일 속도를 향상시키는 방법은 무엇입니까?

12GB RAM, SSD 및 듀얼 코어 CPU (4 논리 프로세서)가 장착 된 노트북을 사용하여 프로젝트 그룹을 구축하고 있습니다. 컴파일하는 동안 자원 미터를 모니터링하면 RAM 및 SSD가 작업의 제한 사항이 아닙니다. CPU는 컴파일을 위해 하나의 논리 프로세서만을 사용하며 이것은 델파이 컴파일러의 설계라고 생각합니다.

보다 나은 하드웨어를 사용하거나 IncrediBuild과 같은 시스템을 구축하여 컴파일 시간을 크게 개선 할 수있는 옵션이 있습니까?

더 나은 하드웨어 환경 (RAID-0, XEON)이 도움이됩니까?

+0

왜 프로젝트를 병렬로 컴파일하지 않습니까? 또한 이제는 프로젝트 1 개와 설정 파일 290 개가 아닌 프로젝트 290 개를 갖는 결정을 다시 고려해야 할 때입니다. –

+0

아마도 내가 명확하게 진술하지 않았을 것입니다. 나는 하나의 .groupproj 파일을 가지고 있습니다. 290 .dproj –

+0

그것은 이미 아주 분명했습니다. 많은 프로젝트에서 내가 상상할 수있는 유일한 이유는 모두 기본적으로 같은 프로젝트이지만 사소한 차이가 있다는 것입니다. 하지만 어쩌면 내가 틀렸어. 어쩌면 당신은 정말로 모두 다른 코드를 가진 290 개의 프로젝트를 가지고있을 것입니다. 어쨌든, 병렬로 컴파일 할 파이썬 빌드 스크립트를 작성하면 내가 할 일이다. –

답변

0

빌드 프로세스가 I/O 바인딩되지 않았 음을 확인 했으므로 RAID 또는 더 나은 프로세서를 사용하면 실제로 도움이되지 않습니다. 주문 측면에서 빌드에 종속성이 없으면 일련의 스레드에 명령 줄 빌드를 실행 한 유틸리티를 Delphi에서 작성할 수 있습니다. 이렇게하면 모든 CPU 코어에 부하를 분산시킬 수 있습니다. 간단한 Producer Consumer Queue 구조와 일련의 작업자 스레드가 작업을 멋지게 처리해야합니다.

+0

스크립팅 언어로는 훨씬 쉽습니다. 작업에 적합한 도구를 사용하십시오. –

관련 문제