【发布时间】:2015-10-01 09:22:17
【问题描述】:
编译器可以接受和处理的行数/代码大小/等是否有(甚至是不现实的)限制?我在文档中找不到任何关于此的内容。
我们可以说处理一个文件的长度/大小的能力仅受硬件限制吗?
【问题讨论】:
-
我们的软件,一个exe,就有超过300万行代码,但是代码行数在Delphi中是一个非常模糊的主题。我记得看到一个非常简单的控制台应用程序,去掉所有不必要的代码,似乎添加了一个额外的不可见代码行,这也发生在所有其他单元上。您还必须考虑 Delphi / Pascal 不是特定于行的 - 您可以将 10 行代码压缩为 1 行。
-
旧版本的 Delphi 限制为 65536 LOC/unit,afaik。现代版本没有,但在某些时候你可能会发现编译一个过大的单元(比任何合理的数量级大)所需的内存量可能会开始严重影响你的编译时间。一个单元中的一百万个 LOC 比分布在多个单元中的一百万个 LOC 更费力。如果您将各个单元保持在合理的大小,那么实际上并没有超出硬件限制的实际限制。
-
另外,为了好玩,这个总是让我发笑...stackoverflow.com/q/19082534/327083
-
AFAIK,由于文件变得太大而无法以纯文本形式保存时,可以自动将其保存为二进制文件,因此限制与硬件有关。我想这也与允许编译器分配多少内存有很大关系。如果我记得,Delphi 10 Seattle 的一个特点是它可以处理的内存量增加了一倍。