Текущая версия Delphi также исключает неиспользуемый код. Вы можете легко увидеть это в Delphi. Если вы скомпилируете, вы получите «синие точки» в канаве вашего кода. Неиспользуемые функции не отмечены синими точками, что означает, что они исключены. Если вы отметите флажок «Оптимизация» в параметрах проекта, код будет переписан для большего использования регистров, что позволит исключить некоторые переменные.
Тем не менее, исполняемые файлы Delphi растут, особенно при использовании определенных модулей. Я думаю, что самый маленький .exe, который вы можете создать в Delphi 7, весит около 10 КБ. В более поздних версиях это, вероятно, будет немного больше.
Важные причины размера файла:
- Ресурсы. Большие или много изображений занимают много места. Если вы используете значки в нескольких формах, обязательно поместите их в центральный список изображений (в общем источнике данных). Используйте одну из доступных реализаций PngImageList для уменьшения размера изображения при лучшем качестве.
- ртти. Информация о типе среды выполнения приводит к тому, что определения классов занимают дополнительное пространство. Это пространство частично связано с метаинформацией о классе, но в основном из-за всего лишнего кода. Любые методы, которые могут быть вызваны с использованием RTTI, могут быть связаны в виде «позднего связывания». Поэтому компилятор не может знать, можно ли исключить методы, поэтому он должен включить их в исполняемый файл.
- зарегистрированные классы. Аналогично 2. Если класс зарегистрирован, его можно получить и создать экземпляр, используя его имя в виде строки. Эти классы должны быть включены в проект, даже если они никогда не используются, просто потому, что компилятор не может знать, нужны ли они.
Это факт, что RTTI расширен в последних версиях Delphi. Я думаю, что это также приводит к тому, что метаинформация RTTI о классах занимает больше места. Есть только так много, что вы можете сделать об этом.
В общем, я думаю, что компилятор Delphi еще много оптимизирует. Вам не нужно беспокоиться о размере exe-файла. Если вы это сделаете, вы можете попробовать упаковщик, например upx
. У меня хорошие впечатления от upx. Он сокращает исполняемые файлы примерно до одной пятой или даже меньше их первоначального размера, сохраняя при этом все функциональные возможности.
person
GolezTrol
schedule
05.11.2012