программно установить максимальный размер кучи Java - PullRequest
6 голосов
/ 25 января 2011

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

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

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

Ответы [ 2 ]

7 голосов
/ 25 января 2011

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

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

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

0 голосов
/ 25 января 2011

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

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

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

...