我有一个浮点数的arraylist包含一些值和3个整数的arraylist
对于浮点数的arraylist的arraylist,行数是47,列数是44300.所以当我试图将包含所有这些arraylists的对象序列化到对象中时,我有一个堆溢出错误。
我使用了arraylist的arraylist是因为在函数调用之前没有预先确定列的数量,因此必须是动态的。我相信这种arraylist的arraylist导致了这个问题。
有没有办法更好地实现动态二维数组并且内存更少?
非常感谢您的帮助
答案 0 :(得分:4)
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