Размер файла Delphi XE3 EXE в 25 раз больше, чем Dephi 7
В качестве теста я решил создать простое приложение "Hello world" в Delphi, используя Delphi 4, 5, 6, 7, 2005, 2010 и XE3. Приложение представляет собой не что иное, как TForm, TButton с событием OnClick, которое вызывает ShowMessage ( "Hello world" ).
Ниже приведены результаты каждого финального EXE с отключенной отладкой:
![File sizes of EXEs]()
Может кто-нибудь объяснить, почему версия XE3 в 26 раз больше, чем в среднем по сравнению с предыдущими версиями Delphi?
Вот мои настройки проекта для XE3:
![Settings 1]()
![Settings 2]()
Ответы
Ответ 1
Возможно, вы сделали компиляцию только после перехода на конфигурацию "Release". Попробуйте выполнить восстановление (не перекомпилировать). Это действительно активирует конфигурацию Release в исполняемом файле и, возможно, меньший размер файла.
Для меня (Delphi XE2) размер, указанный Windows для одного и того же приложения (версия выпуска):
1,52 МБ (1,600512 байт)
Ответ 2
Я понял проблему. Отметьте это тем, что я использую Delphi 7 в 99% случаев, когда я развиваюсь, и XE3 для меня новичок. Несмотря на то, что я выбрал "Release" в рамках опций проекта и сделал там свои хитрости, выясняется, что просто выбрав "Release" не переводит проект в режим Release.
![This isn't enough]()
Кто бы мог подумать, что мне также пришлось использовать панель Project Manager и дважды щелкнуть элемент "Release" , чтобы перевести проект в режим Release?
![Solution]()
Если кому-то интересно, окончательный EXE теперь составляет 2229 Кбайт, что в 5 раз превышает размер EXE до Delphi 2010.
Ответ 3
Ну... есть много вещей, которые объясняют разницу между старым релизом delphi и новым.. Важная вещь - поддержка unicode (D2009.. DXE4), все символы в unicode выделяют 2 байта (в D1, D2, D3, D7,... они выделяют только один байт)
Ответ 4
Просто поместите эти строки в ваш .dpr файл, он уменьшит размер exe на 20%
использует Windows,
{$ O +}
{$ SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}