Delphi的单位中的'uses'指令会使应用程序变大或变慢吗?

时间:2011-01-11 21:03:11

标签: delphi

我想从比我更聪明的人那里了解Delphi,如果在'uses'指令中有很多单位导入,是不是让我的应用程序更慢或更大?

或者如果我导入但未使用的单位很多,删除它们会更好吗?

3 个答案:

答案 0 :(得分:5)

引用不使用的单元会降低编译速度但不会影响编译的应用程序大小(因为未使用的代码未链接)除非单元具有初始化或终结部分。如果有,则将该单元链接。

另外我应该注意,你拥有的单位越多,智能感知越慢。

答案 1 :(得分:2)

您应用中的每个唯一使用都会让您的应用变得更大,因为这意味着最终产品中会有更多代码。

不要担心未使用的课程。如果编译器可以证明它没有在代码中的任何地方使用,它将自行删除它。如果触摸中没有代码,它甚至可以删除整个单元。

答案 2 :(得分:2)

简而言之,使用您不需要的单元会产生更大的可执行文件。通常它对代码的性能几乎没有影响。

GexpertsCnPack等工具可以使用向导自动删除未使用的单位。

减少可执行文件大小的主要方法是disable RTTI

编辑:在旧版本的Delphi中,链接器从可执行文件中删除未使用的方法。即使这样,未使用方法的初始化/完成部分中的代码也可能导致额外的代码链接到可执行文件中,从而增加其大小。

Delphi 2010推出了一个新的RTTI改进版本。其中一个副作用是链接器不再删除未使用的函数。此行为可以是customised to some degree