Различие в производительности между конфеткой и самокомпиляцией

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

3
задан 06.03.2012, 19:53

3 ответа

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

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

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

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

4
ответ дан 07.12.2019, 23:27

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

3
ответ дан 07.12.2019, 23:27

Другая точка является зависимостями.

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

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

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

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

0
ответ дан 07.12.2019, 23:27

Теги

Похожие вопросы