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