라자루스(프리파스칼) 툴의 빌드가 델파이만큼 빠르지 못한 이유는 컴파일과 링크 중 오로지 링크 작업이 느려서인데, 그 느린 이유는 링킹하는데 gcc 툴체인의 일부인 GNU Linker(=ld)를 사용하기 때문입니다. 자세한건 모르지만 이 GNU linker는 상용 개발툴에 비해 링크 작업이 느리기로 유명하며 복잡한 설계 등을 이유로 오랫동안 개선되지 못하고 있다고 알려져 있습니다. 링크 작업에 쓰레드를 도입하면 속도가 빨라진다고 하는데 그 거대한 규모의 ld.exe 소스코드에 하루아침에 쓰레드를 도입하기는 쉽지 않을 것으로 생각됩니다.
그에 비해 LLVM Clang에 포함된 링커는 GNU Linker와는 비교가 안될 정도로 속도가 엄청나게 빠르다고 합니다. 애초에 설계 당시부터 쓰레드를 도입했기 때문이 아닐까 생각됩니다. 차후에 라자루스에서 성능향상을 위해 기본 내장 링커가 LLVM의 링커로 교체되길 기대해 봅니다. 물론 현재도 -Xe 옵션을 써서 별도의 외부 링커를 지정할 수는 있지만 외부 링커를 사용하는 정확한 방법를 모르겠습니다. 기본 제공문서에는 옵션만 나와있을 뿐 어떤 방식으로 외부 링커를 지정할 수 있는지에 대해서는 명확하게 설명되어 있지 않습니다.
댓글 0