【问题标题】:Delphi 6 Project Size LimitationDelphi 6 项目大小限制
【发布时间】: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 版本,但在此之前,稳定性问题仍在日常斗争中继续存在。

标签: delphi delphi-6


【解决方案1】:

抱歉,我还不能发表评论。所以它是一个答案。

我们在使用 Delphi 5 时遇到了问题。使用 3.Party 时大约有 150 万行代码。

正如 MartynA 所说,我们创建了几个

  • Bpl 包
  • 缩短了库和搜索路径的路径名称。 (达到长度限制)
  • 卸载组件以供日常使用。 (我们使用批处理文件来注册注销它们?这是我们解决内存不足崩溃的方法。我想我们在一个单独的程序中获取了所有组件注册和注销调用)
  • 我们采取了一些措施来最大限度地减少编译文件的数量。我认为这类似于将 BPL 创建中的 dcu 放在由库路径搜索的文件夹中?这增加了编译时间.. 但是对于今天的 ssds.. 我敢打赌它是不必要的。

结论:

  • 为内存不足问题注册和注销组件。
  • 使用 Serach Path 来限制项目中的文件。

(注意 NTFS 文件系统和文件夹中的文件数量......之后访问速度会降低(至少在 Windows XP 上是这样))

【讨论】:

    猜你喜欢
    • 2015-10-11
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多