SmartLink
Модератор: Модераторы
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
SmartLink
Вчера пол дня убил разбираясь почему для сборки лазаря перестало хватать памяти...
Залез в .fpc.cfg и вспомнил, что на днях добавил опции -CX и -XX, т.е. включил смартлинк.
Без -XX, но с включеной -CX лазарь собрался как обычно. Решил попробовать собрать пустую форму со смартлинком. Ждал очень долго... несколько часов, но тепрения так и не хватило. У меня 256 Мб оперативы и 1Гб свопа. Компилировал в линухе.
Вообщем у меня три вопроса:
1. Сколько оперативы нужно чтобы собрать пустую форму в лазаре? Около 1Гб видимо (256Мб моей оперативы и своп у меня перестал рости после отметки 470Мб.
2. Какой будет размер исполняемого файла пустой формы собранной со смарт линком?
3. Почему Delphi со смартлинком (включенном по умолчанию) собирает проект менее чем за 1сек, а лазарь (точнее ld, т.к. внутренний компоновщик fpc почему-то не юзется) за несколько часов? (на одном и том же железе)
Залез в .fpc.cfg и вспомнил, что на днях добавил опции -CX и -XX, т.е. включил смартлинк.
Без -XX, но с включеной -CX лазарь собрался как обычно. Решил попробовать собрать пустую форму со смартлинком. Ждал очень долго... несколько часов, но тепрения так и не хватило. У меня 256 Мб оперативы и 1Гб свопа. Компилировал в линухе.
Вообщем у меня три вопроса:
1. Сколько оперативы нужно чтобы собрать пустую форму в лазаре? Около 1Гб видимо (256Мб моей оперативы и своп у меня перестал рости после отметки 470Мб.
2. Какой будет размер исполняемого файла пустой формы собранной со смарт линком?
3. Почему Delphi со смартлинком (включенном по умолчанию) собирает проект менее чем за 1сек, а лазарь (точнее ld, т.к. внутренний компоновщик fpc почему-то не юзется) за несколько часов? (на одном и том же железе)
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
- Alexander
- энтузиаст
- Сообщения: 864
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
shade писал(а):1. Сколько оперативы нужно чтобы собрать пустую форму в лазаре? Около 1Гб видимо (256Мб моей оперативы и своп у меня перестал рости после отметки 470Мб.
А у тебя какое ядро 2,4 или 2,6 ?
shade писал(а):2. Какой будет размер исполняемого файла пустой формы собранной со смарт линком?
Большой. С ГТК он ничего не сделает.
shade писал(а):3. Почему Delphi со смартлинком (включенном по умолчанию) собирает проект менее чем за 1сек, а лазарь (точнее ld, т.к. внутренний компоновщик fpc почему-то не юзется) за несколько часов? (на одном и том же железе)
Он появился в Делфи ?
Alexx2000 писал(а):Так внутренний сделали вроде только под Windows, а под Linux так и используется ld.
Да, точно.
shade писал(а):Неужели ни у кого нет 1 Гб оперативы чтобы проветить? или всем просто влом?
MSE рулит !
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
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
- WatchRooster
- незнакомец
- Сообщения: 2
- Зарегистрирован: 30.12.2007 16:00:03
- Откуда: Майкоп
- Контактная информация:
- Alexander
- энтузиаст
- Сообщения: 864
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
shade писал(а):А подкрепить ответ чем-нибудь можешь? Сам пробовал?
Одна из причин моей миграции в MSE. Насколько я понял, смартлинк
работает только с тем, что сделал FPC, а с сишными либами нет.
Если вру, поправьте.
shade писал(а):2.6.17-1.2157.1asp
Вроде нормально. Я когда то думал, что это было из за старого ядра.
Но, похоже, что нет. Так что зависает, значит, смартлинк на Лазарусе.
И это концептуальные проблемы. Если бы силы, брошенные на борьбу
с вот такими глюками Лазаруса, бросить на MSE, мы бы уже имели
передовую среду разработки под Линукс. Да и Вин, видимо, тоже.
А пока разгром всякого развития.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
И это концептуальные проблемы. Если бы силы, брошенные на борьбу
с вот такими глюками Лазаруса,
============
Лазарус - ни при чем. MSEide (да и более мелкие MSEgui-проекты ) с опциями "-CX -XX" о-о-чень долго собираются.
Проблема - в отсутствии в FPC нативного компоновщика.
ПС:
Кстати, "-ХX" проигрывает "-CX -XX" не очень много, но выполняется быстро. Я именно так ( "make 4" ) собираю релизы MSEgui-проектов ( серьезный БД-проект получается порядка 2М )
с вот такими глюками Лазаруса,
============
Лазарус - ни при чем. MSEide (да и более мелкие MSEgui-проекты ) с опциями "-CX -XX" о-о-чень долго собираются.
Проблема - в отсутствии в FPC нативного компоновщика.
ПС:
Кстати, "-ХX" проигрывает "-CX -XX" не очень много, но выполняется быстро. Я именно так ( "make 4" ) собираю релизы MSEgui-проектов ( серьезный БД-проект получается порядка 2М )
Последний раз редактировалось debi12345 06.01.2008 02:46:13, всего редактировалось 1 раз.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Alexander писал(а):И эффективность смартлинка для проектов Лазаруса низкая.
Это "да" - потому база Лазаруса есть wrappers вызовов сторонних API. И, похоже - авторы (в отличие от мартина) спецон не парятся смарт-линкуемостью.
На MSEgui-проектах, очень долгая "-CX -XX" {смарт-компиляция самого проекта и GUI-библиотеки + смарт линковка с FPC } дает 30-40% выигрыш размера относительно голой и быстрой "-XX" {смарт-линковка с FPC }. Для Лазаруса каково соотношения для этих опций ?
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
Alexander писал(а):И эффективность смартлинка для проектов Лазаруса низкая.
debi12345 писал(а):Для Лазаруса каково соотношения для этих опций ?
Худеет на 43%. В относительных цифрах неплохо, ну а в абсолютных (конечный результат 1.3Мб всё же удручает).
WatchRooster всё-таки провёл эксперимент (по приведенной выше схеме). На 512 Мб сам лазарус со смартлинком он собрать не смог, но пустую форму собрал. Без смартлинка 2.3Мб, со смартлинком 1.3Мб.
Так что делаем выводы:
1. смартлинк рулит
2. ld - тормоз
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
