저는 몇 달 동안 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 속도에 의해 제한될 수 있습니다. 이러한 경우 소스에서 소프트웨어를 컴파일해도 성능이 향상되지 않습니다.