如何从Delphi XE2上的所有源文件中删除未使用的单元?

Dmi*_*try 12 ide delphi delphi-xe2

如何在Delphi XE2上自动从项目的所有源文件的使用部分删除未使用的单元?

之后PS IDE将更快地工作.

Ken*_*ran 15

没有办法完全自动化这个.

我知道有一些工具采用向导方法:

  • CnPack使用单位清洁工
  • Peganza的Pascal分析仪(和它的搭档icarus).
  • Lazarus IDE的CodeTools包中有一个"Unused Units"对话框.

Peganza的工具只显示一份报告.CnPack会提示您删除未使用的单位,但您必须确认.Lazarus为您提供了一个它认为未使用的单元列表,并为您提供了删除部分或全部单元的选择.

为什么不自动化?

因为这是静态分析.即使是最复杂的工具也无法100%确定是否在运行时使用特定的代码行,更不用说整个单元了.这些工具已经实现了自己的解析器来完成这一壮举,但它们并不是万无一失的.

在任何情况下,清理uses子句的主要好处是消除源本身和代码完成功能的视觉混乱.是的,在编译期间获得了一些性能,某些IDE后台操作会稍微加快但我认为如果您认为IDE会奇迹般地加速,您会感到失望.

您将看到更好的IDE和编译器性能:

  1. 将您的项目分解成可以独立处理的小块.
  2. 消除重复的代码.
  3. 禁用不需要的IDE包.

我当然不是想阻止你删除未使用的单位参考.正如我所说,这将有助于整理你的来源.只是确保你出于正确的理由这样做.


nor*_*aul 12

我们有一个名为Delphi Unit Dependency Scanner(DUDS)的实用程序.它扫描整个项目并构建一个完全可搜索的单元和依赖项树.它在查找未使用的单位时非常有用.

该应用程序是免费软件,你可以在这里找到它.

免责声明 - 我是作者.