Я выпускаю один исполняемый файл (.EXE) для настольной программы, использующей Delphi 2009. У меня нет внешних DLL или ресурсов, которые мне нужны для запуска программы.
Я использую два компонента: LMD Innovative ELPack и Сергей Ткаченко TRichView, которые скомпилированы в мой исполняемый файл.
Когда я создаю свою производственную версию, используя конфигурацию сборки "Release", исполняемый файл составляет 13 533 КБ.
До использования Delphi 2009 я использовал Delphi 4. Исполняемый файл был только 2,671 Кбайт, включая те же самые два компонента и в основном с тем же кодом, что и моя текущая версия.
Я действительно понимаю, что Delphi 2009 полностью Unicode (что является основной причиной, почему я обновил), а Unicode может привести к удвоению размера. Но это примерно в 5 раз больше.
Есть ли причина, по которой мой исполняемый файл должен оставаться в 5 раз больше? Или есть несколько простых способов сократить значительную часть исполняемого файла?
Обратите внимание. Некоторые люди отвечают с помощью способов сжатия Delphi EXE. Это не то, что я пытаюсь сделать. Я пытаюсь просто понять, почему так много места используется, чтобы удалить то, что может не понадобиться. Если это будет сделано, сжатие может быть выполнено после этого, если это необходимо.
На самом деле не имеет значения, насколько большой или маленький исполняемый файл после его установки. Он предназначен для загрузки и минимизации загрузки и загрузки сервера, которые вы хотите сжать. Я предпочитаю использовать Inno Setup и сжимать программу внутри самой программы установки. Затем, когда он установлен, он расширяется до полного размера. Это предотвращает возможное обнаружение вируса и устраняет дополнительное время запуска, необходимое для распаковки программы в памяти. Кроме того, я кодирую как мою исполняемую, так и мою программу установки, и некоторые методы сжатия несовместимы с этим.
Подробнее о сжатии см. в вопросе StackOverflow: Delphi EXE-компрессор?
ldsandon попросил меня предоставить именно то, что я использую, поэтому вот они:
Параметры компиляции http://www.beholdgenealogy.com/img/compilingoptions.jpg
Параметры привязки http://www.beholdgenealogy.com/img/linkingoptions.jpg