Улучшает ли компиляция приложений из исходного кода скорость и/или объем оперативной памяти?

Улучшает ли компиляция приложений из исходного кода скорость и/или объем оперативной памяти?

Я использую Linux уже несколько месяцев, и сейчас я использую Arch на старом десктопе. Я слышал много хорошего о компиляции всего из исходников, например, что Gentoo и другие подобные дистрибутивы работают невероятно быстро. Я никогда им не пользовался и не планирую в ближайшее время. Однако, возможно, мне захочется ускорить свои повседневные приложения. Я также задаюсь вопросом, следует ли мне использовать GCC или компилятор C от Intel. Обычно я использую максимум 2 ГБ оперативной памяти, но у меня старый и медленный процессор. Стоит ли мне компилировать все свои приложения из исходников или продолжать использовать двоичные файлы?

Спасибо!

решение1

Ответ — да. Заметно? Почти никогда.

В зависимости от оборудования, на котором вы собираетесь его запустить, скорость "может" быть улучшена, поскольку вы можете использовать любые оптимизации, которые предлагает ваш процессор. Но учтите, что большую часть времени приложения просто используют библиотеки, поэтому, чтобы воспользоваться этим, вам следует перейти на полный Gentoo, например.

Стоит ли это усилий? Вероятно, нет, если только вы не работаете на довольно старом оборудовании или не занимаетесь серьезными вычислениями или чем-то, что выполняется так много раз в секунду, что каждая инструкция имеет значение.

Текущее оборудование большую часть времени простаивает, и этот факт позволяет реализовать такие проекты, как SETI@home, Folding@home, Great Mersenne Prime Search, ...

На старом оборудовании конфигурация может быть более полезной, чем перекомпиляция (которая имеет свой собственный набор проблем, таких как удобство обслуживания, исправления безопасности и отслеживание зависимостей).

Например, настройка Firefox на использование только одного или двух параллельных процессов контента очень помогает в системах с малым объемом памяти. Если проблема в процессоре, вам может потребоваться отключить или вручную запустить определенные службы или фоновые задачи. Tumblerd может легко убить старый компьютер, и то же самое делает updatedb.

Всегда на стороне конфигурации вы можете перекомпилировать, чтобы отключить ненужные библиотеки/службы или настроить другие поля. Например, собрать libreoffice с --disable-pdfimport. В этом общем случае вам все равно лучше загрузить исходные пакеты, используемые в вашей системе (не upstream), и настроить их. Не так много пользы, но многому можно научиться.

Также обратите внимание, что скорость приложения может быть ограничена скоростью ввода-вывода диска или сети. В этих случаях нельзя ожидать, что компиляция программного обеспечения из исходного кода улучшит производительность.

Связанный контент