Установка размера "кучи" JVM во времени выполнения

Вы можете попробовать это:

let Manuel = new Student("Manuel", "lesi", "3", "98789", 2014) 
console.log(Manuel.number);
delete Manuel.number // if you try delete student.number then it not work
console.log(Manuel);
60
задан Jay Conrod 17 September 2009 в 21:00
поделиться

7 ответов

Нет.

То, что вы можете сделать с приложением, которое имеет очень изменяющиеся требования к куче, - это установить максимальный размер кучи с помощью -Xmx и настроить -XX: MaxHeapFreeRatio и -XX: MinHeapFreeRatio , чтобы приложение не зависало на большом количестве памяти при уменьшении кучи (оно делает это с настройками по умолчанию).

Но учтите, что это может вызвать проблемы с производительностью, когда память, фактически используемая приложением, сильно и быстро меняется - в этом случае лучше, если она будет висеть на всей памяти, а не возвращать ее только ОС. требовать это снова секунду спустя. Возможно, вы также захотите поиграть с опциями GC , чтобы убедиться, что GC не оставляет слишком много невостребованных объектов, лежащих вокруг, что он имеет тенденцию делать, когда там '

60
ответ дан 24 November 2019 в 17:52
поделиться

Согласно http://www.dreamincode.net/forums/showtopic96263.htm , Вы не можете сделать это во время выполнения, но можете запустить другой процесс с другим размером кучи.

13
ответ дан 24 November 2019 в 17:52
поделиться

Вы можете настроить эти параметры при запуске приложения, но после запуска JVM и запуска эти значения не могут быть изменены. Примерно так:

java -Xms32m -Xmx512m FooBar

установит минимальный размер кучи равным 32 МБ, а максимальный размер кучи - 512 МБ. Как только они установлены, вы не можете изменить их в работающей программе.

7
ответ дан 24 November 2019 в 17:52
поделиться

Если я правильно понимаю ваш вопрос, вы пытаетесь изменить размер кучи во время выполнения , Я не вижу причин, почему это должно быть возможно. Установите размер кучи при запуске , используя опцию -Xmx JVM. Я также советую вам установить опцию -Xms , только если вам это абсолютно необходимо. Эта опция устанавливает начальный объем памяти заголовка, выделенной для JVM.

Вы должны знать, как ваше приложение ведет себя с точки зрения памяти. Мудро установите значение -Xmx . Если ваше приложение представляет собой какое-то серверное приложение, вы можете установить более высокое значение, иначе скомпрометируйте свой выбор с другими возможными приложениями, работающими на клиентских компьютерах и, конечно, с доступной памятью.

-1
ответ дан 24 November 2019 в 17:52
поделиться

Все согласны с тем, что это действительно невозможно, но мы должны посмотреть на исходный код JVM, чтобы увидеть, как им можно эргономично управлять. . Было бы очень хорошо иметь возможность иметь агент JVMTI, который может настраивать размер кучи / разрешенных / временных / новых / и т. Д. В режиме онлайн / во время выполнения.

Что это будет делать? это позволит агентам делать выводы о корректировках размеров на основе целей производительности или занимаемой площади, что будет важно при перемещении JVM в облако.

2
ответ дан 24 November 2019 в 17:52
поделиться

Я задал тот же вопрос себе. И в отличие от ответов выше, есть что-то, что я могу сделать примерно My приложение, увеличивая максимальный размер кучи JVM. Если приложение является веб-сервером в режиме кластера, я мог бы запустить новый экземпляр с измененным размером кучи MIN / MAX и, чем выходной экземпляр. Это должно быть особенно простым в Glassfish, где у вас есть экземпляр управления от NODEAGENT (App-сервер кластеризованного экземпляра) JVM.

Поскольку многие приложения JVM являются веб-приложениями, я думаю, что стоит сохранить в этом блоге.

0
ответ дан 24 November 2019 в 17:52
поделиться

Вы можете использовать опцию -MX при запуске (также известен как -xmx ) Это максимальный размер, который вы когда-либо должны понадобиться Не следует надо настроить его больше, чем максимальный размер, который вам когда-либо понадобится.

Тем не менее, работа вокруг состоит в том, чтобы иметь основной () проверять максимальный размер и перезапустить Java, если максимальный размер не по желанию. I.e. Начните еще одну программу Java и умирайте.

1
ответ дан 24 November 2019 в 17:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: