gpt4 book ai didi

java - 如何在 Java 内存密集型应用程序中避免 OutOfMemory 异常?

转载 作者:可可西里 更新时间:2023-11-01 16:32:56 27 4
gpt4 key购买 nike

我们开发了一个 java 应用程序,其主要目标是读取文件(输入文件)、处理它并将其转换为一组输出文件。

(我已经对我们的解决方案进行了一般性描述,以避免不相关的细节)。

当输入文件为 4 GB,内存设置为 -Xms4096m -Xmx16384m,32 GB RAM 时,此程序运行良好

现在我们需要使用大小为 130 GB 的输入文件运行我们的应用程序。

我们使用具有 250GB RAM 且内存设置为 -Xms40g -Xmx200g(也尝试了其他几种变体)的 linux 机器来运行应用程序并遇到 OutOfMemory 异常。

在我们项目的这个阶段,很难考虑重新设计代码以适应 hadoop(或其他大型数据处理框架),而且我们目前可以承受的硬件配置是 250GB RAM。

能否请您建议我们避免 OutOfMemory 异常的方法,开发此类应用程序时的一般做法是什么?

提前致谢

最佳答案

最明显的尝试是不要将整个文件保存在内存中(如果可能)。因此,您可以分块处理它,并且在任何时候只在内存中保留一个或几个 block (而不是整个文件)。

关于java - 如何在 Java 内存密集型应用程序中避免 OutOfMemory 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171301/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com