我有一个浮点数组列表的数组列表,其中包含一些值和另外 3 个整数数组列表
对于浮点数的arraylist的arraylist,行数为47,列数为44300。所以当我尝试将包含所有这些arraylists的对象序列化到对象中时,出现堆溢出错误。
我使用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