SmartLink

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

SmartLink

Сообщение shade » 04.01.2008 14:32:15

Вчера пол дня убил разбираясь почему для сборки лазаря перестало хватать памяти...
Залез в .fpc.cfg и вспомнил, что на днях добавил опции -CX и -XX, т.е. включил смартлинк.

Без -XX, но с включеной -CX лазарь собрался как обычно. Решил попробовать собрать пустую форму со смартлинком. Ждал очень долго... несколько часов, но тепрения так и не хватило. У меня 256 Мб оперативы и 1Гб свопа. Компилировал в линухе.

Вообщем у меня три вопроса:

1. Сколько оперативы нужно чтобы собрать пустую форму в лазаре? Около 1Гб видимо (256Мб моей оперативы и своп у меня перестал рости после отметки 470Мб.

2. Какой будет размер исполняемого файла пустой формы собранной со смарт линком?

3. Почему Delphi со смартлинком (включенном по умолчанию) собирает проект менее чем за 1сек, а лазарь (точнее ld, т.к. внутренний компоновщик fpc почему-то не юзется) за несколько часов? (на одном и том же железе)
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Re: SmartLink

Сообщение Alexx2000 » 04.01.2008 14:58:19

shade писал(а):(точнее ld, т.к. внутренний компоновщик fpc почему-то не юзется)

Так внутренний сделали вроде только под Windows, а под Linux так и используется ld.
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Сообщение Attid » 04.01.2008 17:34:38

Alexx2000
а он про линукс вроде и не говорил =)

ЗЫ помню пробывал лазарь пересобрать на ноуте, у меня там вообще 128, в общем подождал я ночьку и забил на это дело =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение shade » 04.01.2008 18:42:14

Attid писал(а):Alexx2000
а он про линукс вроде и не говорил =)

Про линух 8)
Но не суть важно...

Неужели ни у кого нет 1 Гб оперативы чтобы проветить? или всем просто влом?
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Alexander » 04.01.2008 20:05:51

shade писал(а):1. Сколько оперативы нужно чтобы собрать пустую форму в лазаре? Около 1Гб видимо (256Мб моей оперативы и своп у меня перестал рости после отметки 470Мб.


А у тебя какое ядро 2,4 или 2,6 ?

shade писал(а):2. Какой будет размер исполняемого файла пустой формы собранной со смарт линком?


Большой. С ГТК он ничего не сделает.

shade писал(а):3. Почему Delphi со смартлинком (включенном по умолчанию) собирает проект менее чем за 1сек, а лазарь (точнее ld, т.к. внутренний компоновщик fpc почему-то не юзется) за несколько часов? (на одном и том же железе)


Он появился в Делфи ?

Alexx2000 писал(а):Так внутренний сделали вроде только под Windows, а под Linux так и используется ld.


Да, точно.

shade писал(а):Неужели ни у кого нет 1 Гб оперативы чтобы проветить? или всем просто влом?


MSE рулит !
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Sergei I. Gorelkin » 04.01.2008 21:23:06

С гигом оперативки Лазарь в линуксе у меня собирался за секунды (примерно так же, как в винде с внутренним линкером).

p.s. Вот только был ли у меня включен смартлинк при этом?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение shade » 04.01.2008 22:25:29

Alexander писал(а):А у тебя какое ядро 2,4 или 2,6 ?

[alex@localhost i386-linux]$ uname -a
Linux localhost.localdomain 2.6.17-1.2157.1asp #1 Fri Aug 11 03:02:11 EEST 2006 i686 i686 i386 GNU/Linux

Alexander писал(а):
shade писал(а):2. Какой будет размер исполняемого файла пустой формы собранной со смарт линком?

Большой. С ГТК он ничего не сделает.

А подкрепить ответ чем-нибудь можешь? Сам пробовал?

Alexander писал(а):
shade писал(а):3. Почему Delphi со смартлинком (включенном по умолчанию) собирает проект менее чем за 1сек, а лазарь (точнее ld, т.к. внутренний компоновщик fpc почему-то не юзется) за несколько часов? (на одном и том же железе)

Он появился в Делфи ?

В Delphi 6 точно есть, не совсем умный, но всё-таки есть.

Предлагаю провести такой эксперимент:
Шаг 1. В ~/.fpc.cfg добавляем опцию -CX
Шаг 2. собираем лазарус через make clean all
Шаг 3. убеждаемся что в lazarus/lcl/units/i386-linux есть куча файлов libp*.a (они появляются, если указан -CX) (i386-linux - это если у вас линукс...)
Шаг 4. в ~/.fpc.cfg добаляем к -CX еще и -XX
Шаг 5. запускаем лазаря, создаем пустой проект с одной формой, компилируем, делаем strip
Шаг 6. Отписываемся о результатах на форуме. Указываем размер имеющейся ОП, свопа, конченого исполняемого файла и примерное вермя его компиляции.

На Шаге 2 у вас может быть .fpc.cfg примерно такого содержания
Код: Выделить всё
# searchpath for units and other system dependent things
-Fu/usr/local/lib/fpc/$FPCVERSION/units/$FPCTARGET/
-Fu/usr/local/lib/fpc/$FPCVERSION/units/$FPCTARGET/*
-Fu/usr/local/lib/fpc/$FPCVERSION/units/$FPCTARGET/rtl

-CX


На Шаге 5 такой:
Код: Выделить всё
# searchpath for units and other system dependent things
-Fu/usr/local/lib/fpc/$FPCVERSION/units/$FPCTARGET/
-Fu/usr/local/lib/fpc/$FPCVERSION/units/$FPCTARGET/*
-Fu/usr/local/lib/fpc/$FPCVERSION/units/$FPCTARGET/rtl

-CX
-XX
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение WatchRooster » 04.01.2008 23:42:33

512 Мб
Попробовал смартлинк на lazarus. Свопил ровно час. Процессы слетали один за одним. Очередным полетевшим за борт оказался компоновщик.
Аватара пользователя
WatchRooster
незнакомец
 
Сообщения: 2
Зарегистрирован: 30.12.2007 17:00:03
Откуда: Майкоп

Сообщение Alexander » 06.01.2008 00:13:02

shade писал(а):А подкрепить ответ чем-нибудь можешь? Сам пробовал?


Одна из причин моей миграции в MSE. Насколько я понял, смартлинк
работает только с тем, что сделал FPC, а с сишными либами нет.
Если вру, поправьте.

shade писал(а):2.6.17-1.2157.1asp


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

И это концептуальные проблемы. Если бы силы, брошенные на борьбу
с вот такими глюками Лазаруса, бросить на MSE, мы бы уже имели
передовую среду разработки под Линукс. Да и Вин, видимо, тоже.
А пока разгром всякого развития.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение debi12345 » 06.01.2008 00:48:21

И это концептуальные проблемы. Если бы силы, брошенные на борьбу
с вот такими глюками Лазаруса,
============
Лазарус - ни при чем. MSEide (да и более мелкие MSEgui-проекты ) с опциями "-CX -XX" о-о-чень долго собираются.

Проблема - в отсутствии в FPC нативного компоновщика.

ПС:
Кстати, "-ХX" проигрывает "-CX -XX" не очень много, но выполняется быстро. Я именно так ( "make 4" ) собираю релизы MSEgui-проектов ( серьезный БД-проект получается порядка 2М )
Последний раз редактировалось debi12345 06.01.2008 03:46:13, всего редактировалось 1 раз.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Alexander » 06.01.2008 01:32:51

debi12345 писал(а):Лазарус - ни при чем. MSEide (да и более мелкие MSEgui-проекты ) с опциями "-CX -XX" о-о-чень долго собираются.


То что долго пока пофиг. Лазарус вообще кирдык на нём.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Alexander » 06.01.2008 01:34:45

И эффективность смартлинка для проектов Лазаруса низкая.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение debi12345 » 06.01.2008 03:52:27

Alexander писал(а):И эффективность смартлинка для проектов Лазаруса низкая.

Это "да" - потому база Лазаруса есть wrappers вызовов сторонних API. И, похоже - авторы (в отличие от мартина) спецон не парятся смарт-линкуемостью.
На MSEgui-проектах, очень долгая "-CX -XX" {смарт-компиляция самого проекта и GUI-библиотеки + смарт линковка с FPC } дает 30-40% выигрыш размера относительно голой и быстрой "-XX" {смарт-линковка с FPC }. Для Лазаруса каково соотношения для этих опций ?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение shade » 06.01.2008 11:19:38

Alexander писал(а):И эффективность смартлинка для проектов Лазаруса низкая.

debi12345 писал(а):Для Лазаруса каково соотношения для этих опций ?

Худеет на 43%. В относительных цифрах неплохо, ну а в абсолютных (конечный результат 1.3Мб всё же удручает).

WatchRooster всё-таки провёл эксперимент (по приведенной выше схеме). На 512 Мб сам лазарус со смартлинком он собрать не смог, но пустую форму собрал. Без смартлинка 2.3Мб, со смартлинком 1.3Мб.

Так что делаем выводы:
1. смартлинк рулит
2. ld - тормоз
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Brainenjii » 06.01.2008 12:31:06

А смартлинк дает что-нибудь в плане прироста в скорости работы самой программы? Или он только для уменьшения размера проги?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 52

Рейтинг@Mail.ru