LINUX.ORG.RU

STATIC - RULEZZZ, SHARED - SUXX


0

0

Кто-нибудь может назвать хотя бы 5 плюсов shared-сборки над static-ом?

Помоему shared library - пережиток прошлого! Проги работают медленнее, постоянно не стыкуются версии библиотек. А из-за этого часто бывают ОЧЕНЬ НЕТРИВИАЛЬНЫЕ ошибки и как следствие Segmentation Fault (и core в каждой рабочей директории :))) )
gcc-вая опция "-static" - это The Best!!!

Когда мне рассказывают о преимуществах shared-library - это выглядит смешно. Особенно когда говорят, что это для крутых программеров.

Не знаю, мне shared чисто идеологически больше нравятся. Типа модульность и все такое :)

WFrag ★★★★
()

При правильном проектировании библиотек бинарники, импортирующие системные функции, более переносимы. В том числе и на другие платформы (без изменения ядер последних), так JRE for Linux работает под Lynx OS Linux ABI, про более мелкие цацки я вообще молчу (пихать ABI поддержку в ядро там очень нежелательно).

Murr ★★
()
Ответ на: комментарий от flamer

>RAM всё ещё на такая дешевая, чтоб можно было себе это позволить.

и уже одной этой причины IMHO достаточно. Да и место на фс тоже не всегда хватает.

Dead ★★★★
()
Ответ на: комментарий от flamer

>RAM всё ещё на такая дешевая, чтоб можно было себе это позволить.

это только один минус, дальше их больше - отвечая на вопрос к чему идет быстрее обращение к shared memory или к памяти такого-то процесса? - очевиден ответ.

Потом места не жалко? или думаеться что если все будет статиком то не нужны будут библиотеки и мол они места будут меньше занимать - опять глупо - их будет в n раз больше - просто статиком.

Как заниматься разработкой ? то есть места надо будет еще больше то есть держать еще и ar-archive с библиотечными ф-циями.

Вообщем не надо нам второй винды - верно ведь?

Так что это не все аргументы против - найдуться еще =)

alphex_kaanoken ★★★
()
Ответ на: комментарий от alphex_kaanoken

Речь не о том, а том, что если проге надо GNU readline, то почему бы её не вкомпилить, чтобы не напрягать юзера ? Или libreadline.a займёт 10 Мб ??

CKulT
()

ну, пацан, ты революционер... типа мне так показалось -> это немеренно круто

Pi ★★★★★
()
Ответ на: комментарий от CKulT

>Или libreadline.a займёт 10 Мб ??

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

>Речь не о том, а том, что если проге надо GNU readline, то почему бы её не вкомпилить, чтобы не напрягать юзера ?

Чем это он будет напрягаться? для этого есть система пакетов/порты - если они сделаны правильно проблем не будет.

не надо нам back to the dos не надо =)

alphex_kaanoken ★★★
()

>Помоему shared library - пережиток прошлого!

ты много травы парень куришь это static пережиток прошлого.

>Проги работают медленнее,

Подумал что сказал?

>постоянно не стыкуются версии библиотек.

скачать новый пакет/пересобрать мозгу нету?

>А из-за этого часто бывают ОЧЕНЬ НЕТРИВИАЛЬНЫЕ ошибки и как следствие Segmentation Fault (и core в каждой рабочей директории :))) )

ДУмать надо головой

>Когда мне рассказывают о преимуществах shared-library - это выглядит смешно.

Нет парень смешно выглядишь ты когда такое вот пишешь =))

>Особенно когда говорят, что это для крутых программеров.

Особенно для тебя такого крутого программера - иди в школу доучиваться.

alphex_kaanoken ★★★
()
Ответ на: комментарий от alphex_kaanoken

У кого есть, а кого до последнего времени даже нормального пакет манагера н было (swaret).

нет, не будет прилинкована - если её нет в системе за ненадобностью. Надо будет качать и ставить. про readline - это только один пример, а их много.

CKulT
()
Ответ на: комментарий от CKulT

>нет, не будет прилинкована - если её нет в системе за ненадобностью. Надо будет качать и ставить. про readline - это только один пример, а их много.

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

>У кого есть, а кого до последнего времени даже нормального пакет манагера н было (swaret).

Все было нормально - проблем особых не возникало на самом деле - не надо себе думать.

Может еще теперь Setup Wizard-ы понаделаем? которые неизвестно где неизвестно что ставят а потом мы плюемся?

Уж поверь shared libs не придурки разрабатывали и есть свои плюсы;

alphex_kaanoken ★★★
()
Ответ на: комментарий от CKulT

>Али ты хочешь в проги для КДЕ саму КДЕ вкомпиливать вместе с иксами ? LOL

ты хоть подумай что сказал - вообщем прежде чем писать думай головой и понимай что тебе отвечают.

alphex_kaanoken ★★★
()
Ответ на: комментарий от alphex_kaanoken

>>>Не в исходниках а в бинарниках - будем мы иметь мега-пупер-супер программу в 200 метров которая практически ничего не умеет, зато там и **glibc** статиком и **gtk+** и glib и еще куча всего ...

А сам что написал ? lol

CKulT
()
Ответ на: комментарий от alphex_kaanoken

А чем тебя оффтопик в этом плане не устроил, там же примерно все тоже самое. Где там бинари по 200 метров? За исключением архивов разнообразных.

P.S. Надо заканчивать этот злобный флейм

Dead ★★★★
()
Ответ на: комментарий от CKulT

Вопрос спорные быстрее ли ?

Вы скомпиляйте например тору в статик а потом посмотрите:
a: сколько бинарник занимает на диске
b: сколько времени он стартует

А если скомпилять мозилу ?

anonymous
()
Ответ на: комментарий от anonymous

>b: сколько времени он стартует

Вот мне тоже сдается, что прочитать функцию/страницу один раз с диска в кэш вместо того, чтобы прочитать 100 раз эту же функцию/страницу, будет быстрее. Да и cache thrashing - неприятная вещь.

Murr ★★
()
Ответ на: комментарий от Dead

>P.S. Надо заканчивать этот злобный флейм

согласен - просто не поняли друг друга

>А чем тебя оффтопик в этом плане не устроил, там же примерно все тоже самое. Где там бинари по 200 метров? За исключением архивов разнообразных.

Есть такое есть - не по 200 метров но все же =)

alphex_kaanoken ★★★
()
Ответ на: комментарий от CKulT

>верно. просто я альфексу про статик readline а он мне про статик glibc :)) нашёл что сравнить ;)

Я подумал что ты на стороне идиота который и начал топик

так что извиняй, Я в перерывах пока компилировалось на сервере отвечал мог что пропустить, сейчас вот дома - так что можно продолжить в нормальном духе

alphex_kaanoken ★★★
()

Если найдут уязвимость в библиотеке (или просто посвежее версию выпустят) то в случае статических бинарников надо будет пересобирать прогу. А это маразм. Статиком даже закрытый софт мало кто линкует. Это для извращенцев. Или также для обделённых и серых людишек, которые вчера прочитали на каком-нибудь жалком форуме про ключик -static, собрали им свой hello world и теперь орут тут как это классно и какие они крутые.

Esh ★★★★
()

1. Отсутствие необходимости пересборки/перелинковки проекта при изменении модуля.
2. Возможность сделать pluginовый интерфейс.
3. Возможность использовать символы, которые явно в сборке не учавствуют
4. Меньше скорость загрузки нескольких больших проектов.

Теперь про тот бред что написан:

> Помоему shared library - пережиток прошлого!
динамическая линковка появилась после статической. кури маны.

> Проги работают медленнее, постоянно не стыкуются версии библиотек.
медленнее они работают у тебя одного видимо. не стыковка версий библиотек - это счастие пришедшее к нас с C/C++

> А из-за этого часто бывают ОЧЕНЬ НЕТРИВИАЛЬНЫЕ ошибки
Да ладно. Когда версии библиотек не совпадают ничего нетривиального обычно не происходит.

> Segmentation Fault (и core в каждой рабочей директории :)))
Кривые руки - это правда зосада.

> Особенно когда говорят, что это для крутых программеров.
Угу. Для таких как ты. :(.

eXOR ★★★★★
()
Ответ на: комментарий от Esh

Esh: А если эта либа уже 5 лет не обновляется и стабильна как 2.2 ? ;)

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

А название топика - провокация, это и так ясно <= это альфексу

CKulT
()
Ответ на: комментарий от CKulT

CKulT, я не спорю! Например liblua 5 я всегда собираю из сырцов liblua.a и линкую статиком - либа очень маленькая, с версией 4 несовместима напрочь (а 4-я версия в каждом дистре почти). Но линковать прогу статически (с ключем -static) это маразм.

Esh ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.