我正在使用 java-Xmx60g
命令运行以下代码。
每个阵列应该是8.5GB左右,总共17GB。该机器总共有64GB,其中63GB “免费”。它打印DONE DECLARING RIVER HANDS 1
,表明它完成了第一个数组的声明。
但是我在线程“main” java.lang.OutOfMemoryError: Java heap space 在第二个数组的声明过程中得到了异常。我很困惑,因为我的理解是-Xmx60g
应该分配60GB,而数组只使用17GB。
在此先感谢您的帮助!
long NUM_RIVER_HANDS = 2428287420L;
int half_river = (int)(NUM_RIVER_HANDS/2);
byte[][] river_hands_1 = new byte[half_river][7];
System.out.println("DONE DECLARING RIVER HANDS 1");
byte[][] river_hands_2 = new byte[(int)(NUM_RIVER_HANDS - half_river)][7];
System.out.println("DONE DECLARING RIVER HANDS 2");