Подтвердить что ты не робот

Как я могу идентифицировать и избавиться от неиспользуемых единиц в разделе "uses" в Delphi 7?

Это должно немного уменьшить размер исполняемого файла в некоторых моих очень больших проектах. Я уверен, что будут и другие преимущества.

EDIT: Может быть, есть утилита, которая будет сканировать проект и автоматически удалять избыточные? У меня есть 100 проектов, и "автоматическое удаление" будет первым призом, хотя, если мне нужно будет идти вручную с помощью идентификации утилит.

4b9b3361

Ответ 1

Вы можете взглянуть на CnPack.

CnPack включает мастер очистки Uses, который еще не подвел меня.

Ответ 2

Я использовал Icarus, который дал мне отчет о неиспользуемых записей использования.

С веб-страницы

ICARUS анализирует исходный код Delphi или Borland Pascal и генерирует отчет об использовании. Этот отчет поможет вам удалить ненужные единицы из ваших списков использования. Вы также узнаете, какие единицы, которые могут быть перемещены из интерфейса, используют список для списка использования.

Удаление неиспользуемых ссылок использует несколько преимуществ: Чистый код для поддержки, не нужно беспокоиться о том, что код не используется Код из секций инициализации и завершения работы в неиспользуемых единицах не связан Компиляция работает более плавно и быстрее

ICARUS очень прост в использовании, просто выберите исходный файл, задайте несколько параметров и начните анализ. Или пусть встроенный мастер проведет вас через этот процесс.

ICARUS - БЕСПЛАТНО.

Ответ 3

Такой инструмент никогда не сможет проанализировать, нужно ли выполнять операции инициализации или завершения работы используемого устройства или нет. Удаление единиц из использования может привести к тому, что не будут выполняться разделы инициализации и завершения, и, следовательно, будут возникать ошибки.

Ответ 4

Если ваш код может быть скомпилирован с помощью Free Pascal, компилятор Free Pascal также выдаст подсказки о неиспользуемых единицах в вашем коде.

См. также эту запись SO с дополнительной информацией о возможных проблемах, например методах RTTI:

https://stackoverflow.com/questions/605977/tools-to-detect-dead-code-in-delphi2007-or-above/

Ответ 5

Помните, что компоновщик лишит все, что не может быть вызвано. Если не использовать блок, и он не имеет никакой инициализации или завершения, он все равно будет полностью отключен. Все, что упоминается в инициализации или окончательной доработке, останется, но в целом это не должно вносить многого.

Возможно, что блок состоит только из инициализации, так что полная автоматическая дезактивация в любом случае ограничена. Единицы, которые просто изменяют поведение системы в некотором роде, могут быть очень полезны и не нужны. (Менеджер памяти замены с хорошим отслеживанием утечки приходит на ум. Хотя у него есть вещи, которые вы можете ссылаться там не нужно, просто используйте его и получите отчет об утечке. Хорошая двойная проверка для вашего кода.)

Ответ 6

См. некоторые ответы здесь.