Программно установить максимальный размер кучи Java

Есть ли способ установить максимальный размер кучи Java программно, а не в качестве аргумента vm?

Что-то вроде:

System.getProperties().put("<heap variable>", "1000m");

2 ответа

Решение

Не с какой-либо Hotspot JVM. Параметры кучи JVM можно указывать только в командной строке, а затем они фиксируются на время жизни JVM.

В реализациях Hotspot Java единственный способ "изменить" размер кучи приложения - это перезапустить его в новой JVM с другими параметрами командной строки.

(Я смутно припоминаю, что JVM от некоторых других поставщиков допускают изменение некоторых параметров кучи в работающей JVM. Возможно, кто-то может уточнить.)

Вы должны понимать разницу между пространством JVM и средой, в которой оно выполняется. Упомянутый вами параметр (и любой другой параметр -X или -XX) являются настройкой среды, предоставляемой средой, в которой выполняется JVM.

На компьютере с Windows XP ОС Windows является ИНИЦИАТОРОМ JVM. Следовательно, JVM не должна иметь возможности изменять параметр, предоставленный ОС. Это логично

@Stephhen C, возможно, вы правы насчет реализации виртуальной машины, которая предоставляет эту функцию, но я не уверен.

Другие вопросы по тегам