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

Вопросы программирования и использования MSEide + MSEgui.

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

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

Сообщение the_beginer » 12.09.2009 14:07:59

Программки, проекты и подделки размножались, и место на жестком нет.
the_beginer

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

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

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


p.s. Если ответы на эти вопросы уже есть, но я их просмотрел, киньте в меня ссылкой ... а тему удалите.
the_beginer
новенький
 
Сообщения: 30
Зарегистрирован: 29.05.2008 16:51:51

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

Сообщение Иван Шихалев » 12.09.2009 14:24:07

1. Смотря что считать большим размером...
2–3. Компиляция с параметрами -CX -XX применима всегда. Также всегда применимы strip и upx. В последнем случае, правда, есть нюансы, связанные с управлением процессами...
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

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

Сообщение debi12345 » 12.09.2009 19:55:02

Компиляция с параметрами -CX -XX применима всегда

Только, с обоими этими опциями, нужно >=1 G оперативки,чтобы дождаться завершения.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

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

Сообщение the_beginer » 12.09.2009 21:17:48

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

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

Ладно, вот что у меня получилось:
viewtopic.php?f=2&t=4937
the_beginer
новенький
 
Сообщения: 30
Зарегистрирован: 29.05.2008 16:51:51

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

Сообщение Attid » 13.09.2009 19:17:08

the_beginer писал(а):Компиляция с параметрами -CX -XX

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

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

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

Сообщение Vadim » 14.09.2009 05:14:40

the_beginer писал(а):а ведь я просил на пальцах объяснить.

У каждого свои пальцы... :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение Logo » 14.09.2009 11:48:01

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 "
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

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

Сообщение debi12345 » 14.09.2009 22:39:02

Ну и чем дело кончилось - после всех наших "нравоучений" ?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

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

Сообщение the_beginer » 23.09.2009 18:59:12

debi12345 писал(а):Ну и чем дело кончилось - после всех наших "нравоучений" ?


Дело кончилось тем, что для себя оставил пока вариант со strip. Чуть позже напишу пошагово для начинающих простым языком, что и как нужно сделать, и кину отсюда ссылку.
the_beginer
новенький
 
Сообщения: 30
Зарегистрирован: 29.05.2008 16:51:51


Вернуться в MSEide + MSEgui

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

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

Рейтинг@Mail.ru