Как уменьшить размер собранного exe?
Модератор: Модераторы
Пожалуста объясните как скомпилировать FPC под Windows с параметрами -O3 -Xs -XX -CX
-----
Всё, спасибо разобрался. Прблема была в переменных среды окружения.
-----
Всё, спасибо разобрался. Прблема была в переменных среды окружения.
Последний раз редактировалось Pirr 30.10.2009 16:23:47, всего редактировалось 1 раз.
betatester писал(а):4. Оптимизация реально дает результат, но незначительный - порядка 10-15% размера бинарника.
Ну, с 5Мб до 1.3Мб, это сколько процентов будет? Это файлы с внешней отладочной информацией, strip уже им не помогает.
-
betatester
- постоялец
- Сообщения: 276
- Зарегистрирован: 27.04.2007 22:21:45
- Контактная информация:
Logo писал(а):betatester писал(а):4. Оптимизация реально дает результат, но незначительный - порядка 10-15% размера бинарника.
Ну, с 5Мб до 1.3Мб, это сколько процентов будет? Это файлы с внешней отладочной информацией, strip уже им не помогает.
Не понял. У вас файл уменьшился с 5 до 1.3МБ за счет оптимизации?
Мой проект - 18 тыс строк кода. Разница при включённой и выключенной оптимизации составляет ~20КБайт. Объем бинарника - ~300КБайт.
ЗЫ: Включать отладочную информацию при глубокой оптимизации - занятие бессмысленное. Ибо ссылка на строку вашего исходника при оптимизации может быть не определена.
betatester
>Вы ничего не путаете?
Нет, не путаю. В данной ветке речь идет не о -О1 -О2 -О3, а о комплексном решении по уменьшению исполняемого файла.
Люди смотрят на десятки мегабайт и в шоке ищут, как это исправить, о такой оптимизации идет речь.
>Объем бинарника - ~300КБайт.
Причем почти весь размер занимает System. 18 тысяч строк для Объектного Паскаля, это не много.
>Включать отладочную информацию при глубокой оптимизации - занятие бессмысленное. Ибо ссылка на строку вашего исходника при оптимизации может быть не определена.
Вот и опишите людям это поподробнее, а мне оно не нужно.
>Вы ничего не путаете?
Нет, не путаю. В данной ветке речь идет не о -О1 -О2 -О3, а о комплексном решении по уменьшению исполняемого файла.
Люди смотрят на десятки мегабайт и в шоке ищут, как это исправить, о такой оптимизации идет речь.
>Объем бинарника - ~300КБайт.
Причем почти весь размер занимает System. 18 тысяч строк для Объектного Паскаля, это не много.
>Включать отладочную информацию при глубокой оптимизации - занятие бессмысленное. Ибо ссылка на строку вашего исходника при оптимизации может быть не определена.
Вот и опишите людям это поподробнее, а мне оно не нужно.
-
betatester
- постоялец
- Сообщения: 276
- Зарегистрирован: 27.04.2007 22:21:45
- Контактная информация:
???Logo писал(а):betatester
>Вы ничего не путаете?
Нет, не путаю. В данной ветке речь идет не о -О1 -О2 -О3, а о комплексном решении по уменьшению исполняемого файла.
Люди смотрят на десятки мегабайт и в шоке ищут, как это исправить, о такой оптимизации идет речь.
Еще раз, уточните пожалуйста, за счет чего размер бинарника уменьшился с 5 до 1.5Мб?
Вы полагаете? У вас больше?Logo писал(а):>Объем бинарника - ~300КБайт.
Причем почти весь размер занимает System. 18 тысяч строк для Объектного Паскаля, это не много.
К слову - у меня System ВООБЩЕ НЕТ - пишу на чистом GTK2/LIBC/GLIB.
Оптимизация смешивает строки. Или вообще их нивелирует. В результате у вас случиться ошибка. А ссылка по номеру строки привет вас в никуда.Logo писал(а):>Включать отладочную информацию при глубокой оптимизации - занятие бессмысленное. Ибо ссылка на строку вашего исходника при оптимизации может быть не определена.
Вот и опишите людям это поподробнее, а мне оно не нужно.
betatester писал(а):К слову - у меня System ВООБЩЕ НЕТ - пишу на чистом GTK2/LIBC/GLIB.![]()
Угу, компилятора fpc тоже нет.
LIBC из комплекта fpc?
Добавлено спустя 2 минуты 46 секунд:
Я вот поискал, поискал и у меня нет System
Pirr писал(а):Всё, спасибо разобрался. Прблема была в переменных среды окружения.
Эм... А можно поподробнее?
-
betatester
- постоялец
- Сообщения: 276
- Зарегистрирован: 27.04.2007 22:21:45
- Контактная информация:
Нет. Все ручками. Все ссылки на SysUtils из соотв. библиотек fpc (GLIB2, библиотеки X11 и так далее) вычистил. Строковые переменные не использую вообще, только PChar.Logo писал(а):LIBC из комплекта fpc?
Лохматый писал(а):Эм... А можно поподробнее?
У меня на компьютере стоит куча всяких сред разработки и компиляторов, и на команду 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\ - и что с этим делать?
>появилась папка с файлами c:\pp\units\i386-win32\rtl\ - и что с этим делать?
make install
betatester
>Нет. Все ручками. Все ссылки на SysUtils из соотв. библиотек fpc (GLIB2, библиотеки X11 и так далее) вычистил. Строковые переменные не использую вообще, только PChar
Заманчиво.
make install
betatester
>Нет. Все ручками. Все ссылки на SysUtils из соотв. библиотек fpc (GLIB2, библиотеки X11 и так далее) вычистил. Строковые переменные не использую вообще, только PChar
Заманчиво.
alexs писал(а):Mr.Smart писал(а):Вот вот они современные программисты!
![]()
Когда размер исходников твоей программы переваливает за десятки метров, кол-во форм - более 200-300 - то размер FCL/LCL - это уже копейки. Я не спорю - что оно странно выглядит для программы из 1-й формы. Но много ли действительно важных таких программ?
будешь смеяться, но большинство моих программ управляются параметрами командной строки или инишками. У них если вывод на экран идет, то только аварийныйх сообщений... Ну нет в них интерфеса в нормальном виде... Знаешь, но на них пока ни кто не жаловался
Кстати, есть еще виртуал-паскаль с весьма хорошим оптимизатором готового кода, но он уже мертвый раритет...
на виртуал-паскале умудрялся писать консльные екзешники меньше 20 килобайт...
У меня на компьютере стоит куча всяких сред разработки и компиляторов, и на команду 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 писал(а):Куда копать? Как делфист я с make незнаком.
У меня было примерно тоже самое, похоже что твоя система берет команду make из какогото другого компилятора.
Попробуй в PATCH убрать пути к другим средам\компиляторам, например QT, minGW, GCC и т.д.
