如何从Delphi XE2 上项目的所有源文件的使用部分中自动删除未使用的单元?
之后 PS IDE 的工作速度会更快。
没有办法完全自动化这一点。
我知道有一些工具采用向导方法:
Peganza 的工具只是显示一个报告。CnPack 将提示您删除未使用的单元,但您必须确认。Lazarus 会为您提供它认为未使用的单位列表,并让您选择删除部分或全部。
为什么不自动化?
因为这是静态分析。即使是最复杂的工具也无法 100% 确定是否会在运行时使用特定的代码行,更不用说整个单元了。这些工具已经实现了自己的解析器来完成这一壮举,但它们并不是万无一失的。
在任何情况下,清理uses 子句的主要好处是从源代码本身和代码完成功能中消除视觉混乱。是的,在编译过程中获得了一些性能,并且某些 IDE 后台操作会稍微加快,但我认为如果您认为 IDE 会奇迹般地加快速度,您会感到失望。
您将通过以下方式看到更好的 IDE 和编译器性能:
我当然不是试图劝阻您删除未使用的单元引用。正如我所说,这将有助于整理您的来源。只要确保你这样做是出于正确的原因。
我们有一个名为Delphi Unit Dependency Scanner (DUDS) 的实用程序。它扫描您的整个项目并构建一个完全可搜索的单元和依赖关系树。它在查找未使用的单位时非常有用。
该应用程序是免费软件,您可以在此处找到它。
免责声明-我是作者。
CnPack有“使用清洁器...”选项,我已经逐个单元地使用它,没有问题。它还具有完成整个项目的能力——由于项目的规模,我没有尝试过。
不要以为我想要一个可以自动删除“使用”部分中不必要的单元的工具...
但是有一些工具可以识别它们...看看 Icarus...您可以在http://www.peganza.com/downloads.htm获得免费软件
使用自 Delphi XE 以来提供的 reFind.exe 实用程序,使用此命令
重新查找 *.pas /X:unuse.txt
unuse.txt 是一个文本文件,内容如下:
#unuse Unit1
#unuse Unit2
#unuse Unit3
就是这样。如果该单位是最后使用的单位并且有 ; ,它将删除uses 子句中的单位。单位后。