Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2015, 22:42   #1
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
Вопрос Размер выходного exe-файла Delphi XE

Я случайно просёк, как уменьшить размер выходного exe-файла Delphi XE7 на ~80% (для пустого дефолтного проекта с одной формой): с 10,9 Мб до 2,1 Мб. Без пакеров, без build with run-time packages и прочей лабуды. Но не понимаю, почему так происходит. Выходные exe работают на компах без delphi, я проверил.

Кто-нибудь хочет это обсудить?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 30.04.2015, 22:59   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Наверное просто скомпилировали в релиз?..

Последний раз редактировалось Streletz; 30.04.2015 в 23:02.
Streletz вне форума Ответить с цитированием
Старый 30.04.2015, 23:11   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

В проект линкуется тонна не используемого кода, в частности BPL пакеты целиком летят)
Человек_Борща вне форума Ответить с цитированием
Старый 30.04.2015, 23:13   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Наверное просто скомпилировали в релиз?..
думаешь, это снизило бы размер на 80%?
попробуй сам. о результатах сообщи, плизЪ!
я подожду...
Цитата:
В проект линкуется тонна не используемого кода, в частности BPL пакеты целиком летят)
вот именно.
поэтому я и не вкуриваю, как мне удаётся получать ехе < 2.2 Mb! Дефолтный проект компилю, получается чуть меньше 11 Мб, но стоит тыкнуть пару кнопков, потом build нажать и..., о чудо!

Мужики, чо происходит?
И чо было в том куске кода, который секвестировался?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 30.04.2015 в 23:19.
min@y™ вне форума Ответить с цитированием
Старый 30.04.2015, 23:19   #5
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

ну есть же КОЛ
lomastr_ вне форума Ответить с цитированием
Старый 30.04.2015, 23:19   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Мне вот интересно, как этого добиться, не создавая RTL Minimum edition.
Человек_Борща вне форума Ответить с цитированием
Старый 30.04.2015, 23:25   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
ну есть же КОЛ
KOL тут не при делах, у меня его нету даже.
Цитата:
Мне вот интересно, как этого добиться, не создавая RTL Minimum edition.
Мне интересно, почему так происходит!
У тебя какая версия?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 30.04.2015, 23:31   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Мне интересно, почему так происходит!
У тебя какая версия?
Компилятор не полностью анализирует и прогнозирует список только используемого кода.
Он отсекает целиком не используемые модули, и кеширует уже существующие, создавая ссылки на кеш, но суть то не меняется.

Используешь один TStringList? Скушай весь SysUtils, а не только код TStringList, и все его зависимости, слинкует тебе все что есть в SysUtils.

Реальным решением было бы грамотно соблюдать правило: 1 класс - 1 файл, как в Java. Меньше мусора вышло бы.

Последний раз редактировалось Человек_Борща; 30.04.2015 в 23:34.
Человек_Борща вне форума Ответить с цитированием
Старый 30.04.2015, 23:42   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Используешь один TStringList? Скушай весь SysUtils, а не только код TStringList, и все его зависимости, слинкует тебе все что есть в SysUtils.
Да я не об этом, это понятно!
Мне удалось уменьшить ехе, не меняя исходник совсем!
Цитата:
слинкует тебе все что есть в SysUtils
а вот это неправда! но всю иерархию классов он прилинковать, к сожалению, обязан.
кстати, TStringList лежит в модуле classes.pas.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 30.04.2015 в 23:51.
min@y™ вне форума Ответить с цитированием
Старый 30.04.2015, 23:49   #10
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
Мне удалось уменьшить ехе, не меняя исходник совсем!
так вы бы показали как, а то не понятно про что вообще разговор
lomastr_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi XE - размер EXE 5cek Общие вопросы Delphi 19 26.05.2014 18:01
Размер exe файла vovik93 C# (си шарп) 3 26.06.2012 11:32
Как в готовом проекте изменить имя выходного файла программы? DeveloPerchik Общие вопросы Delphi 1 24.05.2012 15:38
Извлечение всех exe-файла из запороленного exe -файла Memfis1992 Общие вопросы Delphi 1 27.10.2010 03:06
Как в Delphi определить размер файла? Nomad Помощь студентам 7 10.08.2010 08:33