![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
короче... 1. создай в delphi XEx пустой проект. 2. скомпили его. посмотри размер ехе. 3. закрой проект (file -> close all). 4. удали из папки проекта подпапку win32 и файл "имя_проекта.dproj". 5. открой теперь в delphi файл "имя_проекта.dpr". 6. delphi конвертнёт его в новый формат и сообщит об этом. 7. скомпили проект. 8. посмотри в папку проекта и охреней от размера "имя_проекта.ехе". Наткнулся я на эту фишку, когда портировал вчера на работе утилитку с d7 на dxe7. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#12 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Что имеется в виду под пустым проектом? Пустой проект Win32 или пустой проект VCL? У Delphi с первой версии неотключаемая "умная сборка", унаследованная еще от Turbo Pascal, так что сам по себе он никакой лишней информации в exe-файл не добавляет.
Это в VCL архитектура такая, что в ней куча перестраховочного и умолчательного кода, который на деле может и не использоваться, а линкуется, поскольку объекты создаются в разделе инициализации модулей. Из-за этого uses Forms добавит к проекту сразу 200-400 КБ, даже если в нем не будет ни одной формы. Если же создать форму, в коде будут ссылки для чтения DFM, что еще метр прибавит, плюс расширенная RTTI, которая появилась вместе с обобщениями (не уверен, что именно, в XE). Еще порядка 300 КБ приходится на... значок! Умолчательная иконка Embarcadero содержит полноцветные значки вплоть до 256x256, а они тоже немаленькие. Сжатие не используется, хотя оно появилось еще в Висте. Вот так и набегает. Где-то 10-20% из любого VCL-проекта можно выкинуть ключом {$WEAKLINKRTTI} с параметрами и установкой флагов в exe-шнике, которые действуют на компилятор (в Delphi 6/7 не действуют). Код:
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#13 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
![]() Цитата:
![]() Debug 001.PNG Release 002.PNG Компилировал "пустой" проект. Все настройки по умолчанию. Даже специальную папку для этого заводить не стал. ![]() Просто переключил Debug/Release ![]() Последний раз редактировалось Streletz; 01.05.2015 в 02:50. |
|
![]() |
![]() |
![]() |
#14 | ||
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
интересно, возможно ли ещё без ущерба сократить размер? –80% – это сильно гут, но хотелось бы выжать из ехе всё, что в принципе возможно. а посему прОшу, товарищи: экспериментируйте дальше с моей подачи! Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось Stilet; 01.05.2015 в 09:17. |
||
![]() |
![]() |
![]() |
#15 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Чей скриншот?
Мне экспериментировать незачем, я уже все написал. С описанными мной ключами и полной перекомпиляцией пустой проект с VCL-формой в XE2 дает порядка 1,2 МБ, после замены значка -- 900 КБ. Это предел. По сравнению с Delphi 6/7 код RTL стал больше, и мои проекты на CoreLite (без VCL) получаются в 1,5-2 раза больше, чем из-под Delphi 6: типа 100 КБ вместо 60 КБ. Это тоже реальная метрика, я по map-файлам слежу.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
![]()
А, смысл?
![]() Окно Project Manager -> Build Configurations. ![]() И не даст. Он для выбора конфигурации, которую нужно настроить с помощью окна свойств проекта. |
![]() |
![]() |
![]() |
#17 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
спасибо. прибейте топик кто-нибудь. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось min@y™; 01.05.2015 в 03:13. |
|
![]() |
![]() |
![]() |
#18 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Зачем прибивать-то? Я что, зря, что ли про оптимизацию уже после выставления конфигурации писал? Совсем не цените, уйду от вас.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#19 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Пусть и другим будет в какчестве пояснения как да чего.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#20 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,871
|
![]()
а зачем вам уменьшать размеры проектов и программ? у вас же жёсткие диски не 50 Мб, а по 750-1000 Гигов. ради чего вам урезать размеры приложений?
или так, для себя. ради оптимизации?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |