3

Как компиляция исходного кода приводит к лучшей производительности, чем использование yum?

3 ответа3

4

Ну, с yum вы получаете предварительно скомпилированную программу, которая подходит для дистрибутива.

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

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

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

3

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

0

Еще один момент - это зависимости.

В Unix-подобных системах программы часто называют друг друга и имеют очень модульную структуру. Так, например, mplayer может выводить видео, используя DirectFB или aalib или libcaca, или используя стандартный кадровый буфер fbcon, используя видеовыход OpenGL, используя X и так далее.

Если вам, например, не нужен вывод ACII, созданный aalib и libcaca, при компиляции программы вы можете просто отключить их. С другой стороны, сопровождающий пакета может решить, что такие параметры очень популярны, и включить их в пакет.

Если вы используете пакет, части ненужного кода остаются в программе, и они могут замедлить выполнение.

Иногда это может ухудшиться. Сопровождающий пакет может решить скомпилировать программу с поддержкой какого-либо другого пакета. Затем этот пакет помечается как зависимый и должен быть установлен. Если ваша система по какой-то причине не работает с этим другим установленным пакетом, вы не сможете использовать программу, которую хотите использовать, из-за ее дополнительной поддержки для какого-либо пакета. У меня была такая проблема, когда PulseAudio был новым. Это просто не сработало бы в моей системе, и тогда у меня были проблемы с переключением на ALSA, потому что большое количество аудио пакетов зависело от Pulse, даже если поддержка Pulse не была критичной для работы пакета.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .