"类型的异常' System.OutOfMemoryException'被扔了#34;在一次编译多个项目时

时间:2015-09-08 02:27:58

标签: delphi out-of-memory delphi-xe5

我使用Embarcadero Delphi XE5企业版。我有一个由17个项目组成的项目组。当我点击“全部编译”时在第7个编译项目之后IDE给我一个例外:

[Fatal Error] Exception of type 'System.OutOfMemoryException' was thrown.

这种错误的原因是什么以及如何处理?

1 个答案:

答案 0 :(得分:5)

Delphi IDE管理内存的几个问题从未真正由Embarcadero修复,其中一个主要问题是IDE和编译器的内存消耗量很大 在编译运行之间未释放的缓存。

我在代码库中成功应用的解决方法是使用dcc编译器使用ANT等工具从命令行编译所有项目,这将节省IDE内存消耗。如果您需要调试应用程序,那么您可以按时编译和构建项目,并在每次2/3编译时重新启动IDE。

我在Delphi XE7中成功应用以减少IDE内存消耗的另一种解决方法是重命名以下IDE文件:

  • Borland.Studio.Delphi.dll
  • Borland.Studio.Refactoring.dll
  • refactoride210.bpl

这使XE7 IDE再次可用;只是重构功能不再可用。

如果上述解决方案不适合您,您将不得不在单个项目中拆分项目组,并在每次其他人建议评论您的问题时在项目之间切换。

新的Delphi 10 Seattle似乎解决了一些与内存相关的问题,因为他们声称:

  

“引擎盖下”IDE的项目,文件和构建管理   处理已经过重大改造和重新设计   显着扩展可用内存,为开发人员提供更多   稳定,有能力,快速的开发经验。

但老实说,我不认为这是最终的解决方案,只是改善了局面。这种情况的最终解决方案是一个64位IDE,由于我认为他们必须处理遗留的而不是非常灵活的代码库,所以它们并不是一件简单的事情。

尝试新的Delphi 10,看看情况是否有所改善,如果不应用解决方法并等待64位IDE发布。