У меня есть программа Java, которая создает 4 пустых байтовых массива MAX_INTEGER - 2
длины и затем останавливается на бесконечном while
l oop в основном методе.
Я установил Windows Java настроек для включения параметров -Xms12g -Xms12g
(у меня 16 ГБ ОЗУ).
При запуске программы в IDE Netbeans с теми же параметрами, установленными для виртуальной машины, программа запускается, и я вижу в диспетчере задач, что используется ~ 8 г ОЗУ, что о том, что я ожидал.
Я скомпилировал программу в отдельный файл .jar, чтобы я мог запустить его вне Powershell, но при попытке запустить строку: java -jar prog.jar -Xms12g -Xmx12g
Мне говорят Я как-то превышаю пространство кучи, но я только что видел, что это не относится к среде IDE:
-XX:MaxPermSize=12g
, похоже, тоже не имеет значения, и Виртуальная машина IDE не требует этого параметра.
Что мне здесь не хватает?
-
Полный исходный код для полноты:
package prog;
public class Prog
{
public static final byte[] arr1 = new byte[Integer.MAX_VALUE - 2];
public static final byte[] arr2 = new byte[Integer.MAX_VALUE - 2];
public static final byte[] arr3 = new byte[Integer.MAX_VALUE - 2];
public static final byte[] arr4 = new byte[Integer.MAX_VALUE - 2];
public static void main(String[] args)
{
while(true);
}
}