我用未使用的单位做了一些测试。通过我的测试,没有明显的 exe 大小差异。但我在文档中找不到任何信息。我的问题是,未使用的单位使用会增加输出文件大小吗?
当您将一些未使用的单元添加到代码的"使用部分"时,这不是好的做法,但它本身会增加最终 exe 文件的大小。编译器分析整个代码并切断所有未使用的部分,因此增加了编译时间。但是你需要记住一件棘手的事情——非使用单元可以包含不能直接使用的代码部分。它可以是一个单元的"初始化部分",也可以是一些可以自动触发的"类构造函数",因此编译器会将其(以及所有使用的类型/单元链)包含在您的exe文件中。还有一件事 - 当你编译一些bpl文件时 - 编译器优化不会以相同的方式工作,因为它无法知道你将在未来使用此bpl的项目中使用这个bpl。
附言如果你想知道你的应用程序中真正使用了哪些单位以及初始化是如何工作的,你可以在"system.pas"中放置一个断点,过程InitUnits。在那里,您可以看到 unitCount,并且可以进入应用程序使用的所有内容的初始化部分(甚至可以查看源代码,如果它在 Delphi 版本中可用)