14

在我的一些非常大的项目中,这应该会大大减少可执行文件的大小。我相信还会有其他好处。

编辑:是否有一个实用程序可以扫描项目并自动删除多余的项目?我确实有 100 个项目,“自动删除”将是一等奖,尽管如果必须,我将在识别实用程序的帮助下采用手动方式。

4

7 回答 7

13

您可能想看看CnPack

CnPack 包括一个使用清洁器向导,它还没有让我失望。

于 2009-05-19T09:44:54.920 回答
9

我曾经使用Icarus,它给了我一个未使用的使用条目的报告。

从网页

ICARUS 解析 Delphi 或 Borland Pascal 源代码并生成使用报告。此报告将帮助您从使用列表中删除不需要的单元。您还将知道哪些单元可以从接口使用列表移动到实现使用列表。

删除未使用的使用引用有多种好处: 维护更清晰的代码,无需为未使用的代码烦恼

ICARUS 非常易于使用,只需选择一个源文件,设置几个选项,然后开始分析。或者让内置向导引导您完成此过程。

ICARUS 是免费软件。

于 2009-05-19T09:33:23.290 回答
2

这样的工具永远无法分析是否需要执行已使用单元的初始化或终结部分。从使用中删除单元可能会导致不运行初始化和终结部分,从而导致错误。

于 2009-05-19T09:44:01.643 回答
2

如果你的代码可以用 Free Pascal 编译,Free Pascal 编译器也会发出关于你代码中未使用单元的提示。

另请参阅此 SO 条目,其中包含有关可能问题的其他信息,例如基于 RTTI 的方法:

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

于 2009-05-19T10:18:30.827 回答
2

请记住,链接器将删除任何无法调用的内容。如果没有使用一个单元并且它没有初始化或完成,无论如何它都会被完全剥离。初始化或终结中引用的任何内容都将保留,但总的来说,这不会带来太多。

一个单元可能只包含初始化,因此无论如何都会限制全自动剥离。仅以某种方式改变系统行为的单元很可能没有引用,但仍然需要。(我想到了具有良好泄漏跟踪的替换内存管理器。虽然它确实有你可以参考的东西,但没有必要,只需使用它并获取泄漏报告。很好地仔细检查你的代码。)

于 2009-05-20T03:54:54.583 回答
1

在这里查看一些答案。

于 2009-05-19T09:30:44.650 回答
1

Peganza 有类似的工具:http ://www.peganza.com/

于 2009-05-19T11:25:24.233 回答