Страница 1 из 1

Уменьшение размера программ

СообщениеДобавлено: 12.09.2009 14:07:59
the_beginer
Программки, проекты и подделки размножались, и место на жестком нет.
the_beginer

Доброго времени суток!

Проблема большого размера исполняемых файлов тут уже обсуждалась. И не раз.
Честно, я всё, что выдал мне поиск, прочитал, но многого не понял. Я всего лишь начинающий (см. ник) и к тому же практик. Поэтому у кого есть время (и терпение) ответьте на несколько вопросов и желательно на пальцах:

1.Кто все-таки виноват в большом размере - собственно freepascal или ide?
2.Под лазарус есть утилиты, оптимизирующие код, А есть такое под mse? А утилиты для лазаря применимы к mse-проектам?
3.применимы ли методы уменьшения размера, озвученные здесь, к проектам mse? (Все что, нашел поисковик, касалось только лазаруса).


p.s. Если ответы на эти вопросы уже есть, но я их просмотрел, киньте в меня ссылкой ... а тему удалите.

Re: Уменьшение размера программ

СообщениеДобавлено: 12.09.2009 14:24:07
Иван Шихалев
1. Смотря что считать большим размером...
2–3. Компиляция с параметрами -CX -XX применима всегда. Также всегда применимы strip и upx. В последнем случае, правда, есть нюансы, связанные с управлением процессами...

Re: Уменьшение размера программ

СообщениеДобавлено: 12.09.2009 19:55:02
debi12345
Компиляция с параметрами -CX -XX применима всегда

Только, с обоими этими опциями, нужно >=1 G оперативки,чтобы дождаться завершения.

Re: Уменьшение размера программ

СообщениеДобавлено: 12.09.2009 21:17:48
the_beginer
Иван Шихалев писал(а):1. Смотря что считать большим размером...
2–3. Компиляция с параметрами -CX -XX применима всегда. Также всегда применимы strip и upx. В последнем случае, правда, есть нюансы, связанные с управлением процессами...

Очень информативный ответ, а ведь я просил на пальцах объяснить.

Ладно, вот что у меня получилось:
viewtopic.php?f=2&t=4937

Re: Уменьшение размера программ

СообщениеДобавлено: 13.09.2009 19:17:08
Attid
the_beginer писал(а):Компиляция с параметрами -CX -XX

the_beginer писал(а):Очень информативный ответ

ссылку читал, слово "компиляция" означает что параметры надо передавать компилятору. а никак не остальным программам

Re: Уменьшение размера программ

СообщениеДобавлено: 14.09.2009 05:14:40
Vadim
the_beginer писал(а):а ведь я просил на пальцах объяснить.

У каждого свои пальцы... :)

Re: Уменьшение размера программ

СообщениеДобавлено: 14.09.2009 11:48:01
Logo
the_beginer писал(а):...
1.Кто все-таки виноват в большом размере - собственно freepascal или ide?
...

Они оба ответственны за оптимизацию. Если FPC откомпилирован без -CX -XX, то компиляция программ мало получит удовольствия. То есть, нужно откомпилировать все модули FPC с параметром -CX -XX, затем LCL с -CX -XX, а потом уже можно любоваться своими программами в пределах 1,5-3Мб.
Например, если FPC без оптимизации, а Lazarus c оптимизацией (-CX -XX), - программа приложения будет 5.1Мб. Но если откомпилировать FPC и Lazarus с параметрами -CX -XX, размер программы откомпилированой также с -CX -XX будет уже 2,9Мб. и та же программа в i386 будет 2.0Мб. Это не слишком то отличается от Делфи :)
Компиляция в i386 даст почти в полтора раза меньший размер, по сравнения с x86_64, ну, а Delphi, почемуто в x86_64 компилировать не хочет 8)
Также используйте рефакторинг, для удаления в модулях своих программ ненужных модулей и не использованных переменных.

Если кмпилировать Lazarus целиком с -CX -XX, то может не хватить памяти, особенно это заметно на i386. Поэтому в настройках выставьте компиляцию только LCL.
FPC обычно компилируется и целиком нормально. Пример строки для компиляции FPC:
Код: Выделить всё
make clean all PP=/usr/local/lib/fpc/2.3.1/ppcx64 COMPILER_OPTIONS="-O3 -CX -XX "

Код: Выделить всё
make PP=/home/Develop/fpc/ppc386 COMPILER_OPTIONS="-O3 -CX -XX "

Re: Уменьшение размера программ

СообщениеДобавлено: 14.09.2009 22:39:02
debi12345
Ну и чем дело кончилось - после всех наших "нравоучений" ?

Re: Уменьшение размера программ

СообщениеДобавлено: 23.09.2009 18:59:12
the_beginer
debi12345 писал(а):Ну и чем дело кончилось - после всех наших "нравоучений" ?


Дело кончилось тем, что для себя оставил пока вариант со strip. Чуть позже напишу пошагово для начинающих простым языком, что и как нужно сделать, и кину отсюда ссылку.