如何在 Delphi XE2上自动删除项目所有源文件中uses节中未使用的单元?P.S. IDE在那之后会工作得快得多。
flvtvl501#
没有办法完全自动化。我知道有几个工具采用向导的方法:
Peganza的工具只是显示一份报告。CnPack将提示您删除未使用的设备,但您必须确认。Lazarus给你一个它 * 认为 * 未使用的单元的列表,并让你选择删除部分或全部。为什么不是自动化的?因为这是静态分析。即使是最复杂的工具也不能百分之百确定是否会在运行时使用特定的代码行,更不用说整个单元了。这些工具已经实现了自己的解析器来完成这一壮举,但它们不是傻瓜证明。在任何情况下,清理uses子句的主要好处是从源代码本身和代码完成特性中消除视觉混乱。是的,在编译过程中有一些性能提高,某些IDE后台操作会稍微加快,但我想如果你认为IDE会奇迹般加速,你会失望的。您将通过以下方式看到更好的IDE和编译器性能:1.把你的项目分成可以独立完成的小块。1.消除重复代码。1.禁用不需要的IDE包。我当然不是要劝阻您删除未使用的单元引用。正如我所说,这将有助于整理你的来源。只要确保你这么做是出于正确的理由。
42fyovps2#
我们有一个实用程序叫做** Delphi 单元依赖扫描器**(DUDS)。它扫描整个项目,并构建一个完全可搜索的单元和依赖关系树。它在查找未使用的单元时非常有用。该应用程序是免费的,你可以找到它here。免责声明-我是作者。
1sbrub3j3#
不要以为我会想要一个工具,将自动撕下不必要的单位在使用部分…但是有一些工具可以识别它们...看看伊卡洛斯...你可以在http://www.peganza.com/downloads.htm上获得免费软件
jum4pzuy4#
CnPack有“使用清洁剂...”选项,我已经使用了单位一单位的基础上没有问题。它也有能力做整个项目-我没有尝试由于项目的规模。
mf98qq945#
使用自 Delphi 以来提供的reFind.exe实用程序,使用以下命令reFind *.pas /X:unuse.txtunuse.txt是一个文本文件,里面有这样的内容:
#unuse Unit1 #unuse Unit2 #unuse Unit3
字符串就是这样它将删除使用条款中的单位,注意是否该单位是最后一个使用的,并且有一个;单位之后。
5条答案
按热度按时间flvtvl501#
没有办法完全自动化。
我知道有几个工具采用向导的方法:
Peganza的工具只是显示一份报告。CnPack将提示您删除未使用的设备,但您必须确认。Lazarus给你一个它 * 认为 * 未使用的单元的列表,并让你选择删除部分或全部。
为什么不是自动化的?
因为这是静态分析。即使是最复杂的工具也不能百分之百确定是否会在运行时使用特定的代码行,更不用说整个单元了。这些工具已经实现了自己的解析器来完成这一壮举,但它们不是傻瓜证明。
在任何情况下,清理uses子句的主要好处是从源代码本身和代码完成特性中消除视觉混乱。是的,在编译过程中有一些性能提高,某些IDE后台操作会稍微加快,但我想如果你认为IDE会奇迹般加速,你会失望的。
您将通过以下方式看到更好的IDE和编译器性能:
1.把你的项目分成可以独立完成的小块。
1.消除重复代码。
1.禁用不需要的IDE包。
我当然不是要劝阻您删除未使用的单元引用。正如我所说,这将有助于整理你的来源。只要确保你这么做是出于正确的理由。
42fyovps2#
我们有一个实用程序叫做** Delphi 单元依赖扫描器**(DUDS)。它扫描整个项目,并构建一个完全可搜索的单元和依赖关系树。它在查找未使用的单元时非常有用。
该应用程序是免费的,你可以找到它here。
免责声明-我是作者。
1sbrub3j3#
不要以为我会想要一个工具,将自动撕下不必要的单位在使用部分…
但是有一些工具可以识别它们...看看伊卡洛斯...你可以在http://www.peganza.com/downloads.htm上获得免费软件
jum4pzuy4#
CnPack有“使用清洁剂...”选项,我已经使用了单位一单位的基础上没有问题。它也有能力做整个项目-我没有尝试由于项目的规模。
mf98qq945#
使用自 Delphi 以来提供的reFind.exe实用程序,使用以下命令
reFind *.pas /X:unuse.txt
unuse.txt是一个文本文件,里面有这样的内容:
字符串
就是这样它将删除使用条款中的单位,注意是否该单位是最后一个使用的,并且有一个;单位之后。