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