Стоит ли использовать статическую линковку.
MooSE 28 марта, 2006 - 22:04
Вот сейчас все носятся вкоруг РОД-Linux, который использует статическую линковку. Вот я и задумался. В какому случае система работает быстрее? Вариантов два:
1. USE='static'
2. USE='-static'
Сразу оговрюсь что ком не самый слабый: Celeron-1700/768MB. Мне кажется что стачиская линковка должна повысить требования к памяти. Но про увелечение скорости я сильно соневаюсь. Может кто-то считает по другому?
»
- Для комментирования войдите или зарегистрируйтесь
могу только
могу только сказать, что НЕКOТОРЫЕ приложения работают стабильнее при статической линковке. На счет производительности тоже сомневаюсь
Незнаю как для
Незнаю как для домашнего использования но статическую линковку широко используют на кластарах и в grid-системах. Это упрощает жизнь юзерам и админам. Так обычно делают чтобы не ставить софт сразу на всю систему а только в ${HOME}
Правда у всего этого есть большой минус бинарники становятся большими и работают несколько медленнее
_________________
Gentoo GNU/Linux 2.6.16 GCC 3.4.5 Dual Xeon
Бред какой то.
Бред какой то. Какая разница загрузится одна часть проги, а потом другая, или все сразу? Разве размер влияет на скорость работы программы в памяти?
программе надо
программе надо время, чтобы подгрузить (а может еще и выгрузить) библиотеку. если оперативки достаточно, то разницы между скоростью работы подгруженного кода и статически слинкованного быть не должно
статическая
статическая линковка может несколько убыстрять запуск и работу программ(а может и наоборот). в любом случае это в несколько раз большие размеры бинарников и требования к памяти.
разделяемая библиотека может быть загружена либо при запуске приложения, либо приложение ее подгружает тогда, когда есть необходимость в библиотеке.
при статической линковке ничего подгружать не надо. все сразу грузится в память.(надо это добро программе или нет)
статическую линковку включать по дефолту для всех собираемых приложений не рекомендую. она может быть применена для конкретных приложений, в которых время критично и она показывает при рост производительности
А мне кажется...
Что это палка о двух концах...
С одной стороны программа грузится быстрее, потому что нет необходимости в динамическом связывании.
А с другой стороны объем у программы больше, а с учетом того что динамические библиотеки используются всеми приложениями и скорее всего уже загружены заранее - получается неоправданные задержки на загрузку.
В процессе работы тоже есть разница... статические программы работают быстрее, но и памяти съедают больше...
что отрицательно сказывается на производительности системы в целом, увеличивается нагрузка на своп. Что в свою очередь замедляет приложение.
Я не слишком хорошо разбираюсь в линуксовых динамических либах...
Но вот например в оффтопике динамические либы часто связываются не в момент загрузки, а в момент вызова функций. что является причиной снижения скорости уже работающего приложения...
Короче так, если много памяти - то имеет смысл... приложения один раз закешируются и будут стартовать мгновенно. Но требования к дисковому пространству (если распространять этот принцип на всю систему) возрастут многократно...
Думайте сами, решайте сами... как говорится.
Лучше юзать
Лучше юзать prelink. Толку больше.
А можно про
А можно про него по подробнее?
Re: А можно про
http://www.gentoo.org/doc/en/prelink-howto.xml
Короче.... Вот
Короче.... Вот наступил долгожданный отпуск, и я попробовал сделать вот так:
Система реально замедлилась. Сейчас вернул всё как было.
P.S. Памяти 768MB и она реально использовалась максимум на половину. Так что дело не в неё недостатке. Просто когда я запускаю например Opera из KDE то она может использовать уже находящуюся в памяти копию QT, а может тянуть статически слинкованную. Потому время запуска немного растёт. Тоже касается и прог, активно использующих sed, grep, awk и проч. Т.е. почти все. Ведь всё что им необходимо уже есть в памяти (почти всегда).