gpt4 book ai didi

java - 内存不足错误 : Java heap space while converting some bulk data to toString()

转载 作者:行者123 更新时间:2023-11-29 03:44:03 25 4
gpt4 key购买 nike

我遇到了 java.lang.OutOfMemoryError: Java heap space。大量数据转换为 toString()。我有自己的 toString 代码实现。你可以看到下面的代码:

String dataStr = (new LargeData(objData)).toString();

public String toString()
{
try
{
if (localBase64Binary != null)
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
localBase64Binary.writeTo(out); return out.toString("utf-8");
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
return null;
}

我正在使用最大堆空间 -Xms128m -Xmx256m。如果我增加堆空间,我只能推迟几天内存不足。这种情况有什么办法可以优化代码吗?

谁能指导我或帮助我解决这个问题?

最佳答案

一个问题是动态调整数组大小以添加更多元素。这需要分配一个比现有数组更大的新数组,然后复制元素。如果新数组大于堆空间的一半,则肯定会失败。

您的问题的解决方案是不使用 .toString()。与其尝试将所有数据保存在 RAM 中,不如将文件流传递给该方法并将数据写入磁盘(或将其流式传输到套接字或管道)。

关于java - 内存不足错误 : Java heap space while converting some bulk data to toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805740/

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