我使用Embarcadero Delphi XE5企业版。我有一个由17个项目组成的项目组。当我点击“全部编译”时在第7个编译项目之后IDE给我一个例外:
[Fatal Error] Exception of type 'System.OutOfMemoryException' was thrown.
这种错误的原因是什么以及如何处理?
答案 0 :(得分:5)
Delphi IDE管理内存的几个问题从未真正由Embarcadero修复,其中一个主要问题是IDE和编译器的内存消耗量很大 在编译运行之间未释放的缓存。
我在代码库中成功应用的解决方法是使用dcc编译器使用ANT等工具从命令行编译所有项目,这将节省IDE内存消耗。如果您需要调试应用程序,那么您可以按时编译和构建项目,并在每次2/3编译时重新启动IDE。
我在Delphi XE7中成功应用以减少IDE内存消耗的另一种解决方法是重命名以下IDE文件:
这使XE7 IDE再次可用;只是重构功能不再可用。
如果上述解决方案不适合您,您将不得不在单个项目中拆分项目组,并在每次其他人建议评论您的问题时在项目之间切换。
新的Delphi 10 Seattle似乎解决了一些与内存相关的问题,因为他们声称:
“引擎盖下”IDE的项目,文件和构建管理 处理已经过重大改造和重新设计 显着扩展可用内存,为开发人员提供更多 稳定,有能力,快速的开发经验。
但老实说,我不认为这是最终的解决方案,只是改善了局面。这种情况的最终解决方案是一个64位IDE,由于我认为他们必须处理遗留的而不是非常灵活的代码库,所以它们并不是一件简单的事情。
尝试新的Delphi 10,看看情况是否有所改善,如果不应用解决方法并等待64位IDE发布。