Размер ехе файла в RAD Studio XE

  • Автор темы badamushto
  • 6062
  • Обновлено
  • 10, Jun 2011
  • #1
Проект писался на CodeGear 2009, размер экзешника около 3 Мб, недавно проапгрейдился на RAD Studio XE собрал на нем свой проект и обнаружил что размер экзешника вырос почти вдвое и весит около 6Мб... Это какнибудь лечиться или так и надо? А то както такой невминяемый рост размера не очень мне нравиться...

badamushto


Рег
04 Mar, 2010

Тем
1

Постов
2

Баллов
12
  • 13, Jun 2011
  • #2
странно 2009 по-моему уже подерживала юникод попорбуй в dpr порписать {$WEAKLINKRTTI ON} {$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}
 

LeshaRB


Рег
11 Jun, 2007

Тем
5

Постов
110

Баллов
160
  • 28, Jul 2011
  • #3
можно посоветовать - npack, жмёт лучше всех упаковщиков, с 24 метров (дебаг версия) до 7 метров.
 

SergikS2009


Рег
16 Apr, 2008

Тем
0

Постов
4

Баллов
4
  • 22, Mar 2012
  • #4
Изначально речь была не о сжатии, а о выбрасывании мусора из экзешника. Тут 2 пути: или не использовать VCL (который раздувается с каждой версией) и вызывать чистые Window-ские API, или задвигать часть кода в наружные динамические библиотеки (BPL, DLL).
 

kokaloka


Рег
25 May, 2005

Тем
1

Постов
2

Баллов
12
  • 24, Jun 2012
  • #5
alek-erokhin, ну конечно когда 6 ещё сойдет, а когда 25 то приходится сживать

SergikS2009, Upx примерно так же сжимает , с 25 до 7-8 м
 

XProger


Рег
02 May, 2010

Тем
1

Постов
5

Баллов
15
  • 24, Jun 2012
  • #6
Нормальный результат Недавно, ради интереса, "прогнал" проект (C++Bulder) в версиях 3,5,6,2006,2010,XE(2). Ну и ... код пухнет ~2 раза от версии к версии, да и "тормоза" примерно так же.
 

HmMik


Рег
05 Nov, 2004

Тем
0

Постов
2

Баллов
2
  • 07, Jul 2012
  • #7
Во-первых, желательно компилить финальную версию проекта в Release варианте (размер сразу уменьшается вплоть до 3-5 раз)

Во-вторых, если уж так сильно критичен размер финального екзешника, то можно его сжать одним из предлагаемых выше пакеров (плюс можно стаб информацию поправить, что бы исключить автоматическое расжатие анпакерами)

Имхо, сейчас уже не те времена, когда очень важен именно сам размер файла.



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

hmtemp


Рег
21 Apr, 2009

Тем
0

Постов
1

Баллов
1
  • 11, Feb 2014
  • #10
UPX upx works fine for me
upx works fine for me
sorry for the mistake.
 

lqedu


Рег
04 May, 2010

Тем
0

Постов
1

Баллов
1
  • 15, Nov 2014
  • #12
Maximkaeg, post: 731707:
[Что именно сделать нужно, ?тема не раскрыта !
На главной форме с разу после uses.. добавляем три строчки.. uses Windows....; {$WEAKLINKRTTI ON} {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} {$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED} type TForm1 = class(TForm) ....... всё!
 

DelGor


Рег
25 Jul, 2011

Тем
0

Постов
11

Баллов
11
  • 17, Nov 2014
  • #13
жать это жать, а вот как написать что бы exe был приемлимых размеров это другой вопрос я сейчас стараюсь не использовать сторонних компонент, а все стандартные размещать на форме только для разработки до рабочего релиза, далее все компоненты создаются в realtime и после работы уничтожаются.

А что бы не тянуть все стандартные типы у меня есть свой модуль с нужными функциями.
 

йцукеурщл


Рег
30 May, 2014

Тем
0

Постов
9

Баллов
9
  • 06, Feb 2015
  • #14
{$SETPEFlAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED or

IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED or

IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}

Что я здесь сделал?

IMAGE_FILE_RELOCS_STRIPPED - отрезал релоки

IMAGE_FILE_DEBUG_STRIPPED - Выбросил из ехе Debug информацию

IMAGE_FILE_LINE_NUMS_STRIPPED - Выбросил из exe информацию о номерах строк

IMAGE_FILE_LOCAL_SYMS_STRIPPED - Выбросил local symbols

IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP - При запуске exe с компакта, флешки, других извлекаемых устройств, считать exe в свап и запустить оттуда.

Полезно, если нужно запустить программу с компакта, а потом попросить вставить другой... IMAGE_FILE_NET_RUN_FROM_SWAP - аналогично предыдущей, только для сетевых дисков
 

winpop


Рег
06 Feb, 2015

Тем
0

Постов
4

Баллов
4
  • 27, Feb 2015
  • #15
Приятно слышать что остались разработчики, которым не безразличен размер бинарника! Был хороший проект для этих задач, заключался в замене системных RTL библиотек. Называется этот проект KOL - Key Objects Library.
http://galayko.ru/blog/325
 

galayko


Рег
27 Feb, 2015

Тем
0

Постов
2

Баллов
2
  • 30, Apr 2015
  • #16
supermart, post: 731714:
Тоже перешел с D2007 на XE7, EXE шник увеличился в 3 раза. Проверю данные здесь советы
и как результаты проверки? Подумываю с Д7 на ХЕ8 перейти.
 

Amsterdam123


Рег
19 Sep, 2014

Тем
0

Постов
4

Баллов
4
  • 30, Apr 2015
  • #17
проверил днём то, что Eidos и winpop предлагают - результаты одинаковы на обоих настройках На Д7 вес софтины 7Мб На ХЕ7 17.3Мб с настройками - 16.Мб. Т.е., немного размер падает.
 

Amsterdam123


Рег
19 Sep, 2014

Тем
0

Постов
4

Баллов
4
Тем
49554
Комментарии
57426
Опыт
552966

Интересно