С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 19.06.2019
Сообщений: 3
RAD XE3+

Лишние 10Мб в приложении

03.12.2019, 05:57. Показов 2597. Ответов 61
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться с приложениями в RAD 10.3
Суть в следующем:
Имеется готовая программа, размер исполняемого файла – 13118 Кб, если удалить файл dproj и перекомпилировать проект заново, то создаётся новый файл dproj, и размер исполняемого файла становится 3138 Кб, лишние 9980 Кб (13118-3138).
Берём другой проект размер исполняемого файла – 13238 Кб, после манипуляций 3258 Кб, опять лишние 9980 Кб.
Создаем новый проект, одна кнопка по нажатию showmessage, размер exe – 11826 Кб, после манипуляции – 2296 Кб.
Вопрос: Чего я лишусь в программе оптимизируя таким способом (на сколько я смог проверить разницы между маленьким и большим exe в функционале не нашёл)?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2019, 05:57
Ответы с готовыми решениями:

Работа с файлами до 10мб
Добрый день :senor: Подскажите способы\технологии работы с файлами на андроид решающие мою задачу. Мне необходимо писать в файл раз...

Новый Transcend 1Tb 3.0, скорость 10мб!
Здравствуйте. Купил на днях Внешний Transcend 2.5" 1TB usb 3.0. Подключил в свой ноут, попробывал скинуть файл - скорость 10мб\сек....

Файлы больше 10мб не загружаються,не могу найти причину.
<html> <head> <title>Результат загрузки файла</title> </head> <body> <?php if($_FILES > 1024*50*1024) { echo...

61
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
03.12.2019, 08:20
Подозреваю, что это разница между Release и Debug версией. При удалении dproj изменяется тип exe-шника с дебажного на релизный.
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
03.12.2019, 09:01
Либо, новый exe компилируется с использованием пакетов.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
03.12.2019, 13:52
Цитата Сообщение от zarazinka Посмотреть сообщение
разницы между маленьким и большим exe в функционале не нашёл
Попробуйте выполнить "маленький" exe-файл на машине, где нет и не было никогда той версии RAD Studio, что установлена у Вас...
0
0 / 0 / 0
Регистрация: 19.06.2019
Сообщений: 3
04.12.2019, 03:14  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Попробуйте выполнить "маленький" exe-файл на машине, где нет и не было никогда той версии RAD Studio, что установлена у Вас...
Работает без проблем на других ОС (можете за 5 минут проверить это), создавал на Win 7 64, проверял на Win 7 32/64, Win 10 32/64.
Разницы не увидел, а она скорее всего есть (не просто ж так RAD добавляет 10Mb к exe), хотелось бы узнать в чём её суть (в каких режимах работы приложения или с использованием каких компонентов появится разница в функционале между большим и маленьким exe), чтобы знать в каких случаях можно уменьшить размер исполняемого файла таким способом, а в каких – нет.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
04.12.2019, 04:33
Цитата Сообщение от zarazinka Посмотреть сообщение
можете за 5 минут проверить это
Интересно, каким же это образом?
0
0 / 0 / 0
Регистрация: 19.06.2019
Сообщений: 3
04.12.2019, 05:05  [ТС]
Интересно, каким же это образом?
Открываем RAD, создаём vcl app, сохраняем проект, нажимаем f9 и смотрим размер exe, закрываем проект и открываем с dpr, нажимаем f9, получаем exe в 4 раза меньше, копируем маленький exe на виртуалку/другую ОС/другой комп и видим, что всё работает. Как-то так.
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
04.12.2019, 05:48
Цитата Сообщение от zarazinka Посмотреть сообщение
закрываем проект и открываем с dpr, нажимаем f9, получаем exe в 4 раза меньше
Никакой разницы не получилось.

У тебя этот маленький exe по прежнему в папке Debug лежит?
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
04.12.2019, 06:06
Да, действительно, притупил что-то...
Суть "большого" файла в том, что по умолчанию исполняемый файл приложения создается в режиме Debug, т.е. к нему прицепляется так называемая отладочная информация. Она нужна на этапе проектирования и доведения проекта до ума... При сдаче проекта "в эксплуатацию" в ней, действительно, нет никакой необходимости - но для этого существует режим компиляции Release, который создает исполняемый файл без всей этой требухи... т.е. откомпилировав файл в режиме Release Вы получите примерно тот же размер, что и при удалении файла *.dproj...
Но, удаляя этот файл, Вы теряете информацию об опциях Вашего проекта: информацию о версии продукта, к примеру... А если используете VCL-стили, то вообще будете при старте получать подобную ошибку



хотя далее приложение будет функционировать нормально (хотя, тут еще спорный вопрос, глубоко не копал)
Поэтому верный способ уменьшить размер ехе-файла - после всех отладок, тестовых прогонов и т.д., когда приложение функционирует как надо - просто перекомпилируйте его в режиме Release.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
04.12.2019, 06:08
Цитата Сообщение от AzAtom Посмотреть сообщение
У тебя этот маленький exe по прежнему в папке Debug лежит?
Нет, в этом случае вообще не создается доп. папок, как это в Дельфи 7 было... Но для чистоты эксперимента надо перед открытием проекта через *dpr удалить файл *dproj.
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
04.12.2019, 09:01
Цитата Сообщение от D1973 Посмотреть сообщение
удалить файл *dproj.
Я его не удалил, просто .dpr открыл. Попробую вечером.
0
Злостный нарушитель
 Аватар для Verevkin
10246 / 5673 / 1262
Регистрация: 12.03.2015
Сообщений: 26,284
04.12.2019, 09:14
Цитата Сообщение от zarazinka Посмотреть сообщение
Имеется готовая программа, размер исполняемого файла – 13118 Кб, если удалить файл dproj и перекомпилировать проект заново, то создаётся новый файл dproj, и размер исполняемого файла становится 3138 Кб, лишние 9980 Кб (13118-3138).
Я всегда так делаю при создании нового проекта.
Плюс в релизный балд добавляю кой-какие директивы и размер сокращается ещё на мегабайт!

Обратите внимание на размеры:

0
231 / 163 / 54
Регистрация: 26.10.2014
Сообщений: 928
04.12.2019, 09:17
Цитата Сообщение от D1973 Посмотреть сообщение
Суть "большого" файла в том, что по умолчанию исполняемый файл приложения создается в режиме Debug, т.е. к нему прицепляется так называемая отладочная информация.
У меня разница между Debug и Release версиями составляет несколько сотен килобайт. А у вас сколько?
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
04.12.2019, 10:24
Цитата Сообщение от mac1eod Посмотреть сообщение
У меня разница между Debug и Release версиями составляет несколько сотен килобайт. А у вас сколько?
Это, в том числе, зависит от настроек дебажного режима. Его можно настроить так, что вообще никакой разницы не будет. Но в моем случае разница тоже составляет 10-15 МБ
0
231 / 163 / 54
Регистрация: 26.10.2014
Сообщений: 928
04.12.2019, 10:40
Цитата Сообщение от Nanotentacle Посмотреть сообщение
Но в моем случае разница тоже составляет 10-15 МБ
у вас 10.3?
дебажный режим по умолчанию, или производили какие то настройки?
0
Заблокирован
04.12.2019, 10:47
А можно поставить KOL и тогда просто окно будет 14-20кб Ну и само приложение при максимальной навороченности не превысит 200кб
Но к этой библиотеке надо привыкнуть. И её визуальная часть, говорят не встаёт на новые версии делфи.
Но вполне можно обойтись и без компонентов, создавая всё вручную.
0
04.12.2019, 11:07

Не по теме:

Цитата Сообщение от Lorrrd Посмотреть сообщение
А можно поставить KOL и тогда просто окно будет 14-20кб Ну и само приложение при максимальной навороченности не превысит 200кб
Но к этой библиотеке надо привыкнуть. И её визуальная часть, говорят не встаёт на новые версии делфи.
Но вполне можно обойтись и без компонентов, создавая всё вручную.
И тут сразу вспоминает мультик про про "... а десять шапок можно?". Ну не бывает так, что то, что уместилось в 2 МБ потом перекодируется в 14-20КБ без потери чего-то важного

0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
04.12.2019, 11:30
Цитата Сообщение от Nanotentacle Посмотреть сообщение
Ну не бывает так, что то, что уместилось в 2 МБ потом перекодируется в 14-20КБ без потери чего-то важного
Смотря что считать важным. Берём один и тот же небольшой проект, компилируем в Delphi 4 - около 300 КБ. Компилируем этот же проект без изменений в Delphi 7 - exe получается около 400 КБ. Компилируем то же самое на XE3 - exe получается около 2,7 МБ в релизе. А функционал ровно тот же самый! Значит, в последнем случае есть более 2 МБ чего-то неважного.
0
Заблокирован
04.12.2019, 11:56
Для того чтобы понять почему такой огромный размер, есть отличные статьи.
Смысл такой.
Делфи использует классы. которые отвратительно организованы.
Программист использует классы, а в них куча ненужного кода.
В классе вам нужна одна функция, но в программу попадает всё.
Собственно такая же проблема со всеми современными языками. И C++ не исключение.
Неужели никто ни разу не сталкивался с тем, что нужно ставить какие-то новые пакеты с библиотеками?
Да, MS ведёт мощную поддержку языка C++ и его клонов.
С Паскалем хуже. И поэтому все эту библиотеки приложения должны таскать с собой. Плюс отладочную информацию, которую в релизе отключают.

Но и без неё есть выход. Пожалуйста, отключите все эти библиотеки и тогда размер резко сократится.
Но работать всё это будет только на компе где эти библиотеки есть.
Достаточно две огромне DLL воткнуть туда где остальные, чтобы система их нашла, и тогда никаких проблем.
Можете писать для себя приложения с маленьким размером.
Но если вы желаете распространять, то тут нужно просто уведомить о необходимости установки этих библиотек.
И выложить их отдельно. Тот кто будет скачивать ваши проги, поставит себе эти библиотеки и сможет пользоваться любыми приложениями написанными в Делфи.
Вопрос только о версиях.

Библиотека KOL организована по-другому и поэтому может создавать код очень небольшой.
Она работает и с лазарус.
Единственное что плохого, автор уже положил на неё. И нет такой мощнойной поддержки.
Классы KOL не использует. И поэтому нужно писать свои компоненты или модули, основанные на объектах.
Но и того что есть вполне достаточно.
Что касается юникода - он есть. Есть много интересных вещей.
Реализован в каждом компоненте метод перетаскивания. То есть если даже на панель перетащить файл, Панель получит его адрес.
Уже организован вывод текста с антиалисингом. То есть у букв плавные края.
Единственное что нужно делать, это включать нужные функции.
Если нужен юникод, нужно включить
Если нужен int64 тоже...

Но библиотека заточена под 32 разряда и windows.
Но и это не проблема. Включить директиву только паскаль и тогда будет и 64 и кроссплатформенность.
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
04.12.2019, 12:01
Цитата Сообщение от Lorrrd Посмотреть сообщение
В классе вам нужна одна функция, но в программу попадает всё.
В классе бывает метод, и я не представляю, как можно "вырезать" из класса одну функцию. Речь идет про модуль?

Цитата Сообщение от Lorrrd Посмотреть сообщение
Но работать всё это будет только на компе где эти библиотеки есть.
Спасибо, лучше я с собой притяну лишние 2МБ. Это та ситуация, когда удобство стоит того места, которое я на него потрачу.

Цитата Сообщение от Lorrrd Посмотреть сообщение
Единственное что плохого, автор уже положил на неё. И нет такой мощнойной поддержки.
То есть, мы сейчас говорим про мертвое ПО которое на, скажем, Delphi 10 не запустится. И с каждым годом будет все хуже и хуже...

Цитата Сообщение от mac1eod Посмотреть сообщение
у вас 10.3?
дебажный режим по умолчанию, или производили какие то настройки?
10.1, дебажный режим по умолчанию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2019, 12:01
Помогаю со студенческими работами здесь

На диске с базой осталось 10Мб, что можно сделать?
База состоит из двух файлов, 220 и 40Гб. Если делать бэкап, то бэкапятся только 40 как я понимаю. Может её удалить полностью и восстановить...

Почему dll quake весит 1мб,плеер юнити-10мб, warcraft.dll-8мб
Почему так много весят эти файлы?Ресурсы хранятся в другом месте а там что движок?Но... они что исписали тысячи строк кода для одного мб?

Код который работает в консольном приложении в приложении Windows Forms выдает ошибку
Есть код для записи видео с экрана. В консольном приложении он работает, записывает все как нужно. Вставляю код классов в приложение...

Лишние <a>
Почему то при просмотре html в firebug, там в конце некоторых div элементов стоит &lt;a&gt;&lt;/a&gt;. Хотя в исходном документе такого нет. Значит...

Лишние if else
Существует ли какой-нибудь паттерн или способ, который избавиться от множественных if else и сделает код более красивым. Потому что от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru