Как уменьшить размер собранного exe?

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

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

Re: Как уменьшить размер собранного exe?

Сообщение Pirr » 30.10.2009 14:32:55

Пожалуста объясните как скомпилировать FPC под Windows с параметрами -O3 -Xs -XX -CX
-----
Всё, спасибо разобрался. Прблема была в переменных среды окружения.
Последний раз редактировалось Pirr 30.10.2009 17:23:47, всего редактировалось 1 раз.
Аватара пользователя
Pirr
новенький
 
Сообщения: 21
Зарегистрирован: 21.10.2009 11:50:46

Re: Как уменьшить размер собранного exe?

Сообщение Logo » 30.10.2009 16:53:53

betatester писал(а):4. Оптимизация реально дает результат, но незначительный - порядка 10-15% размера бинарника.

Ну, с 5Мб до 1.3Мб, это сколько процентов будет? Это файлы с внешней отладочной информацией, strip уже им не помогает.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Как уменьшить размер собранного exe?

Сообщение betatester » 30.10.2009 17:16:54

Logo писал(а):
betatester писал(а):4. Оптимизация реально дает результат, но незначительный - порядка 10-15% размера бинарника.

Ну, с 5Мб до 1.3Мб, это сколько процентов будет? Это файлы с внешней отладочной информацией, strip уже им не помогает.

Не понял. У вас файл уменьшился с 5 до 1.3МБ за счет оптимизации? :lol: Вы ничего не путаете?
Мой проект - 18 тыс строк кода. Разница при включённой и выключенной оптимизации составляет ~20КБайт. Объем бинарника - ~300КБайт.

ЗЫ: Включать отладочную информацию при глубокой оптимизации - занятие бессмысленное. Ибо ссылка на строку вашего исходника при оптимизации может быть не определена.
betatester
постоялец
 
Сообщения: 276
Зарегистрирован: 27.04.2007 22:21:45

Re: Как уменьшить размер собранного exe?

Сообщение Logo » 30.10.2009 19:03:15

betatester
>Вы ничего не путаете?
Нет, не путаю. В данной ветке речь идет не о -О1 -О2 -О3, а о комплексном решении по уменьшению исполняемого файла.
Люди смотрят на десятки мегабайт и в шоке ищут, как это исправить, о такой оптимизации идет речь.

>Объем бинарника - ~300КБайт.
Причем почти весь размер занимает System. 18 тысяч строк для Объектного Паскаля, это не много.

>Включать отладочную информацию при глубокой оптимизации - занятие бессмысленное. Ибо ссылка на строку вашего исходника при оптимизации может быть не определена.
Вот и опишите людям это поподробнее, а мне оно не нужно.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Как уменьшить размер собранного exe?

Сообщение betatester » 30.10.2009 19:37:30

Logo писал(а):betatester
>Вы ничего не путаете?
Нет, не путаю. В данной ветке речь идет не о -О1 -О2 -О3, а о комплексном решении по уменьшению исполняемого файла.
Люди смотрят на десятки мегабайт и в шоке ищут, как это исправить, о такой оптимизации идет речь.
???
Еще раз, уточните пожалуйста, за счет чего размер бинарника уменьшился с 5 до 1.5Мб?

Logo писал(а):>Объем бинарника - ~300КБайт.
Причем почти весь размер занимает System. 18 тысяч строк для Объектного Паскаля, это не много.
Вы полагаете? У вас больше? :wink:
К слову - у меня System ВООБЩЕ НЕТ - пишу на чистом GTK2/LIBC/GLIB. :D

Logo писал(а):>Включать отладочную информацию при глубокой оптимизации - занятие бессмысленное. Ибо ссылка на строку вашего исходника при оптимизации может быть не определена.
Вот и опишите людям это поподробнее, а мне оно не нужно.
Оптимизация смешивает строки. Или вообще их нивелирует. В результате у вас случиться ошибка. А ссылка по номеру строки привет вас в никуда. :wink:
betatester
постоялец
 
Сообщения: 276
Зарегистрирован: 27.04.2007 22:21:45

Re: Как уменьшить размер собранного exe?

Сообщение Logo » 30.10.2009 21:42:02

betatester писал(а):К слову - у меня System ВООБЩЕ НЕТ - пишу на чистом GTK2/LIBC/GLIB. :D

Угу, компилятора fpc тоже нет.

LIBC из комплекта fpc?

Добавлено спустя 2 минуты 46 секунд:
Я вот поискал, поискал и у меня нет System :roll: Наверное у нас FPC не ФПЦешный :shock:
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Как уменьшить размер собранного exe?

Сообщение Лохматый » 31.10.2009 01:20:16

Pirr писал(а):Всё, спасибо разобрался. Прблема была в переменных среды окружения.


Эм... А можно поподробнее?
Аватара пользователя
Лохматый
незнакомец
 
Сообщения: 3
Зарегистрирован: 25.10.2009 20:32:52
Откуда: Краснодар

Re: Как уменьшить размер собранного exe?

Сообщение betatester » 31.10.2009 16:30:43

Logo писал(а):LIBC из комплекта fpc?
Нет. Все ручками. Все ссылки на SysUtils из соотв. библиотек fpc (GLIB2, библиотеки X11 и так далее) вычистил. Строковые переменные не использую вообще, только PChar.
betatester
постоялец
 
Сообщения: 276
Зарегистрирован: 27.04.2007 22:21:45

Re: Как уменьшить размер собранного exe?

Сообщение Pirr » 31.10.2009 18:08:03

Лохматый писал(а):Эм... А можно поподробнее?

У меня на компьютере стоит куча всяких сред разработки и компиляторов, и на команду make реакция была непонятной, писало что нужен Makefile хотя он был в этом каталоге.
Пока не прописал в PATCH путь c:\lazarus\fpc\2.2.4\bin\i386-win32\ ничего не помогало.
----
И еще вопрос: что должно получится в результате компиляции?
Я скачал снапшот FPC 2.5.1 - он не собрался.
Попробовал перекомпилировать имеющуюся версию 2.2.4 с параметрами -O3 -XX -CX -Xs - компиляция прошла без ошибок, появилась папка с файлами c:\pp\units\i386-win32\rtl\ - и что с этим делать?
Аватара пользователя
Pirr
новенький
 
Сообщения: 21
Зарегистрирован: 21.10.2009 11:50:46

Re: Как уменьшить размер собранного exe?

Сообщение Logo » 01.11.2009 00:36:12

>появилась папка с файлами c:\pp\units\i386-win32\rtl\ - и что с этим делать?
make install

betatester
>Нет. Все ручками. Все ссылки на SysUtils из соотв. библиотек fpc (GLIB2, библиотеки X11 и так далее) вычистил. Строковые переменные не использую вообще, только PChar

Заманчиво.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Как уменьшить размер собранного exe?

Сообщение PapaNT » 02.11.2009 14:46:58

alexs писал(а):
Mr.Smart писал(а):Вот вот они современные программисты!

:lol:
Когда размер исходников твоей программы переваливает за десятки метров, кол-во форм - более 200-300 - то размер FCL/LCL - это уже копейки. Я не спорю - что оно странно выглядит для программы из 1-й формы. Но много ли действительно важных таких программ?

будешь смеяться, но большинство моих программ управляются параметрами командной строки или инишками. У них если вывод на экран идет, то только аварийныйх сообщений... Ну нет в них интерфеса в нормальном виде... Знаешь, но на них пока ни кто не жаловался ;)

Кстати, есть еще виртуал-паскаль с весьма хорошим оптимизатором готового кода, но он уже мертвый раритет...
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Re: Как уменьшить размер собранного exe?

Сообщение alexs » 02.11.2009 14:55:03

Для консольных утилит графические мордочки вобще не нужны. Логи - наше всё.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Как уменьшить размер собранного exe?

Сообщение PapaNT » 02.11.2009 18:02:46

на виртуал-паскале умудрялся писать консльные екзешники меньше 20 килобайт...
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Re: Как уменьшить размер собранного exe?

Сообщение Kon.pasc » 03.11.2009 11:11:09

У меня на компьютере стоит куча всяких сред разработки и компиляторов, и на команду make реакция была непонятной, писало что нужен Makefile хотя он был в этом каталоге.
Пока не прописал в PATCH путь c:\lazarus\fpc\2.2.4\bin\i386-win32\ ничего не помогало.

Хм. А у меня пишет:
Код: Выделить всё
make clean all PP=c:\prog\fpc\2.3.1\bin\i386-win32\ppc386.exe COMPILER_OPTIONS="-O3 -Xs -XX -CX"
make: *** No rule to make target `clean'.  Stop.

на просто make all пишет соответственно
Код: Выделить всё
make: *** No rule to make target `all'.  Stop.

Куда копать? Как делфист я с make незнаком.
Kon.pasc
новенький
 
Сообщения: 26
Зарегистрирован: 31.10.2009 17:45:38

Re: Как уменьшить размер собранного exe?

Сообщение Pirr » 03.11.2009 11:42:53

Kon.pasc писал(а):Куда копать? Как делфист я с make незнаком.

У меня было примерно тоже самое, похоже что твоя система берет команду make из какогото другого компилятора.
Попробуй в PATCH убрать пути к другим средам\компиляторам, например QT, minGW, GCC и т.д.
Аватара пользователя
Pirr
новенький
 
Сообщения: 21
Зарегистрирован: 21.10.2009 11:50:46

Пред.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35

Рейтинг@Mail.ru