소스에서 애플리케이션을 컴파일하면 속도 및/또는 RAM이 향상됩니까?

소스에서 애플리케이션을 컴파일하면 속도 및/또는 RAM이 향상됩니까?

저는 몇 달 동안 Linux를 사용해 왔으며 현재는 오래된 데스크톱에서 Arch를 실행하고 있습니다. 예를 들어, Gentoo 및 기타 유사한 배포판이 매우 빠르게 발전하고 있다는 등 소스에서 모든 것을 컴파일하는 방법에 대해 좋은 소식을 들었습니다. 나는 그것을 사용한 적이 없으며 조만간 사용할 계획도 없습니다. 그러나 일상적인 응용 프로그램의 속도를 높이고 싶을 수도 있습니다. GCC를 사용해야 할지, 인텔의 C 컴파일러를 사용해야 할지 궁금합니다. 나는 일반적으로 최대 2GB의 RAM을 사용하지만 프로세서가 오래되고 느립니다. 모든 애플리케이션을 소스에서 컴파일해야 합니까, 아니면 바이너리를 계속 사용해야 합니까?

감사해요!

답변1

대답은 '예'입니다. 눈에 띄게? 거의 없다.

실행하려는 하드웨어에 따라 CPU가 제공하는 모든 최적화를 사용할 수 있으므로 속도가 "향상될 수 있습니다". 그러나 대부분의 경우 응용 프로그램은 라이브러리만 사용하므로 이를 활용하려면 예를 들어 전체 Gentoo를 사용해야 합니다.

노력할 가치가 있나요? 아마도 그렇지 않을 것입니다. 아주 오래된 하드웨어에서 실행 중이거나 심각한 숫자 처리 작업을 수행하거나 초당 여러 번 실행되는 작업을 수행하는 경우가 아니면 각 명령이 중요합니다.

현재 하드웨어는 기본적으로 대부분의 시간 동안 유휴 상태이므로 SETI@home, Folding@home, Great Mersenne Prime Search 등과 같은 기능을 사용할 수 있습니다.

오래된 하드웨어에서는 구성이 재컴파일보다 더 도움이 될 수 있습니다(유지 관리 가능성, 보안 수정, 종속성 추적과 같은 자체적인 문제가 발생함).

예를 들어, 하나 또는 두 개의 병렬 콘텐츠 프로세스만 사용하도록 Firefox를 구성하면 메모리가 부족한 시스템에서 많은 도움이 됩니다. CPU가 문제인 경우 특정 서비스나 백그라운드 작업을 비활성화하거나 수동으로 실행할 수 있습니다. Tumblerd는 오래된 컴퓨터를 쉽게 죽일 수 있으며 업데이트도 마찬가지입니다.

항상 구성 측면에서 불필요한 라이브러리/서비스를 비활성화하거나 다른 필드를 조정하기 위해 다시 컴파일할 수 있습니다. 예를 들어 --disable-pdfimport를 사용하여 libreoffice를 빌드합니다. 일반적인 경우에는 업스트림이 아닌 시스템에서 사용되는 소스 패키지를 다운로드하고 이를 조정하는 것이 더 좋습니다. 얻는 것은 많지 않지만 배울 것은 많습니다.

또한 애플리케이션의 속도는 디스크나 네트워크 I/O 속도에 의해 제한될 수 있다는 점에 유의하세요. 이러한 경우 소스에서 소프트웨어를 컴파일해도 성능 향상을 기대할 수 없습니다.

관련 정보