【发布时间】:2021-07-01 14:41:40
【问题描述】:
是的,这是一个 Delphi 6 问题!有谁知道IDE可以处理的项目大小是否存在物理限制?例如,项目中使用的单位数量?我知道当您的文件超过 32k 行时,调试器会出现问题。最近我们得出的结论是,.dpr 中包含的单元数量似乎存在限制。
我们的旧版应用大约有 160 万行。我们经常遇到内存不足问题和 RLINK 问题。我们永远无法准确找到这些问题的根源。
【问题讨论】:
-
对于 IDE out of memory 问题,我建议您使用命令行编译器和 make 文件来编译您的应用程序。对于 RLINK 问题,我不知道,因为您没有指定问题。
-
当然,您可能应该更新到最新的 Delphi 版本。这可能(或不是)是一项艰巨的任务,具体取决于您的应用程序对字符串的处理以及您的代码正在使用哪些附加组件和库。由于客户只使用他们拥有完整源代码的组件和库,因此我很容易成功地转换了用 Delphi 5 编写的大型应用程序。
-
在黑暗中的镜头:这不是包含的单元数,而是代码行的总数。尝试在不改变项目包含的内容的情况下大幅削减你的一个单位——它改变行为你有你的答案。作为一种长期方法:将 1 个项目分成几个项目并将它们编译为 DLL,然后可以由您的“主”项目加载。
-
在我退休之前,我经常构建一个 D5 项目,其中包含我自己的 1.7 行代码,并且在 3rd 方库中也同样如此,没有任何内存不足或链接问题。顺便说一句,如果您想生成可以在运行时加载的模块,您可能会发现最好将它们编译为运行时包(.BPL 文件)而不是 DLL - 请参阅here。
-
@fpiette,命令行编译器做同样的事情。一些 RLINK 错误表示不受支持的 16 资源,随后出现内存不足错误。不幸的是,这个项目有很多第三方的东西,我们正忙于进行初始测试以将所有内容转换为最新的 delphi 版本,但在此之前,稳定性问题仍在日常斗争中继续存在。