Уменьшение размера программ
Модератор: Модераторы
-
the_beginer
- новенький
- Сообщения: 30
- Зарегистрирован: 29.05.2008 16:51:51
Уменьшение размера программ
Программки, проекты и подделки размножались, и место на жестком нет.
the_beginer
Доброго времени суток!
Проблема большого размера исполняемых файлов тут уже обсуждалась. И не раз.
Честно, я всё, что выдал мне поиск, прочитал, но многого не понял. Я всего лишь начинающий (см. ник) и к тому же практик. Поэтому у кого есть время (и терпение) ответьте на несколько вопросов и желательно на пальцах:
1.Кто все-таки виноват в большом размере - собственно freepascal или ide?
2.Под лазарус есть утилиты, оптимизирующие код, А есть такое под mse? А утилиты для лазаря применимы к mse-проектам?
3.применимы ли методы уменьшения размера, озвученные здесь, к проектам mse? (Все что, нашел поисковик, касалось только лазаруса).
p.s. Если ответы на эти вопросы уже есть, но я их просмотрел, киньте в меня ссылкой ... а тему удалите.
the_beginer
Доброго времени суток!
Проблема большого размера исполняемых файлов тут уже обсуждалась. И не раз.
Честно, я всё, что выдал мне поиск, прочитал, но многого не понял. Я всего лишь начинающий (см. ник) и к тому же практик. Поэтому у кого есть время (и терпение) ответьте на несколько вопросов и желательно на пальцах:
1.Кто все-таки виноват в большом размере - собственно freepascal или ide?
2.Под лазарус есть утилиты, оптимизирующие код, А есть такое под mse? А утилиты для лазаря применимы к mse-проектам?
3.применимы ли методы уменьшения размера, озвученные здесь, к проектам mse? (Все что, нашел поисковик, касалось только лазаруса).
p.s. Если ответы на эти вопросы уже есть, но я их просмотрел, киньте в меня ссылкой ... а тему удалите.
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
1. Смотря что считать большим размером...
2–3. Компиляция с параметрами -CX -XX применима всегда. Также всегда применимы strip и upx. В последнем случае, правда, есть нюансы, связанные с управлением процессами...
2–3. Компиляция с параметрами -CX -XX применима всегда. Также всегда применимы strip и upx. В последнем случае, правда, есть нюансы, связанные с управлением процессами...
-
the_beginer
- новенький
- Сообщения: 30
- Зарегистрирован: 29.05.2008 16:51:51
Иван Шихалев писал(а):1. Смотря что считать большим размером...
2–3. Компиляция с параметрами -CX -XX применима всегда. Также всегда применимы strip и upx. В последнем случае, правда, есть нюансы, связанные с управлением процессами...
Очень информативный ответ, а ведь я просил на пальцах объяснить.
Ладно, вот что у меня получилось:
viewtopic.php?f=2&t=4937
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
the_beginer писал(а):Компиляция с параметрами -CX -XX
the_beginer писал(а):Очень информативный ответ
ссылку читал, слово "компиляция" означает что параметры надо передавать компилятору. а никак не остальным программам
the_beginer писал(а):а ведь я просил на пальцах объяснить.
У каждого свои пальцы...
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 компилировать не хочет
Также используйте рефакторинг, для удаления в модулях своих программ ненужных модулей и не использованных переменных.
Если кмпилировать 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 "-
the_beginer
- новенький
- Сообщения: 30
- Зарегистрирован: 29.05.2008 16:51:51
debi12345 писал(а):Ну и чем дело кончилось - после всех наших "нравоучений" ?
Дело кончилось тем, что для себя оставил пока вариант со strip. Чуть позже напишу пошагово для начинающих простым языком, что и как нужно сделать, и кину отсюда ссылку.
