gpt4 book ai didi

对象序列化期间Java堆溢出

转载 作者:行者123 更新时间:2023-12-01 18:59:13 26 4
gpt4 key购买 nike

我有一个包含一些值的 float 数组列表和另外 3 个整数数组列表

对于 float 的 arraylist 的 arraylist,行数为 47,列数为 44300。因此,当我尝试将包含所有这些 arraylist 的对象序列化到对象中时,出现堆溢出错误。

我使用 arraylist 的 arraylist 是因为列数在函数调用之前不是预先确定的,因此必须是动态的。我相信这个 arraylist 的 arraylist 导致了问题。

有没有什么方法可以用更少的内存更好地实现动态二维数组?

非常感谢您的帮助

最佳答案

8(float size) * 47* 44300 = 16656800 bytes-->16 MB

现在,如果您考虑另外 3 个整数 ArrayList

4(int size) * 47* 44300 = 8328400 bytes-->8 MB * 3-->24 MB

我的意见是检查堆空间有多少并增加它。将集合更改为数组将是真正的微观基准测试。

-Xms<size>        set initial Java heap size
-Xmx<size> set maximum Java heap size

java -Xms256m -Xmx512m

关于对象序列化期间Java堆溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12879180/

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