Я сделал несколько тестов с неиспользуемыми единицами. В моем тестировании нет четкой разницы в размере exe. Но я не могу найти никакой информации в документе. Мой вопрос в том, будет ли неиспользуемое использование единиц увеличивать размер выходного файла?
По сравнению с другими IDE, это недостаток RAD Studio, заключающийся в том, что он не может обнаружить неиспользуемый модуль.
Когда вы добавляете некоторые неиспользуемые единицы в «используемую часть» вашего кода, это не очень хорошая практика, но она сама по себе увеличивает размер конечного исполняемого файла. Компилятор анализирует весь код и отрезает все неиспользуемые части, что увеличивает время компиляции. Но нужно помнить одну хитрость — блоки non-uses могут содержать части кода, которые можно использовать не напрямую. Это может быть «часть инициализации» модуля или некоторые «конструкторы классов», которые могут запускаться автоматически, поэтому компилятор включит их (и все цепочки используемых типов/юнитов) в ваш exe-файл. Еще один момент — когда вы компилируете какой-то bpl-файл — оптимизация компилятора не работает точно так же, потому что он не может знать, что вы будете использовать из этого bpl в будущих проектах, которые будут использовать этот bpl.
P.S. Если вы хотите знать, какие единицы измерения действительно используются в вашем приложении и как работает инициализация, вы можете поставить точку останова в «system.pas», процедура InitUnits. Там вы можете увидеть unitCount и перейти к части инициализации всего, что используется вашим приложением (даже посмотреть исходники, если они доступны в вашей редакции Delphi).
Только если модуль включает раздел инициализации, который принудительно включает его. В противном случае компилятор проанализирует его во время компиляции, но если ни один из его символов не используется, он не будет включен в окончательный исполняемый файл. Однако они увеличивают время компиляции, а их удаление делает ваш код чище, потому что вы (и другие, кто читает ваш код позже) знаете, какие единицы действительно необходимы.