Как динамично контролировать размер "кучи" Java?

Я пытаюсь контролировать размер "кучи" Java динамично. Кто-либо знает, как использовать maxmium память в процессе выполнения части кодов? Runtime.maxMemory () добиваются цели? Спасибо

37
задан skaffman 29 January 2010 в 16:15
поделиться

6 ответов

MaxMemory () Возвращает максимальное количество памяти, которую Java будет использовать. Так что это не получит тебе то, что вы хотите. TotalMemory () - это то, что вы ищете. См. Документы

29
ответ дан 27 November 2019 в 04:32
поделиться

Существует большое количество предметов профилировщиков, которые должны помочь вам с этим. Популярный коммерческий инструмент Yourkit , и он получает Rave Reviews. Бесплатная альтернатива VisualVm , которую я использовал в прошлом и может обеспечить много проницательности.

13
ответ дан 27 November 2019 в 04:32
поделиться

Если вам нравится, вы можете визуально просмотреть много значений, профилирующих ваше приложение с JConsole.

http://docs.orcle.com/javase/6/docs/technotes/tools/docare/jconsole.html

Запустите приложение с помощью:

-Dcom.sun.management.jmxremote

, и приложение для вас будет доступно для выбора при запуске /bin/jconsole.exe

11
ответ дан 27 November 2019 в 04:32
поделиться

Также есть java.lang.management . Используйте управление Управление , чтобы получить экземпляр SmorymxBean . У него есть методы, чтобы вернуть кучу и моментальный снимок использования памяти не куча.

4
ответ дан 27 November 2019 в 04:32
поделиться

С заявлением очевидно, но не делать ничего, чтобы раздражать своих пользователей. Например. Можем ли они потратить двадцать минут ввода данных, высекать на кофемашину и вернуться к кнопку «Отправить», чтобы найти таймера истек, заметил обновление, и их работа теряется из-за вынужденного перезапуска?

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

-121--3753604-

Еще одна бесплатная альтернатива используется Java-монитор . Посмотрите на это живой демонстрируют . Просто нажмите на любой из серверов, чтобы увидеть подробные графики на памяти кучи, памяти без кучи, файловых дескрипторов, базы данных баз данных и многое другое.

0
ответ дан 27 November 2019 в 04:32
поделиться
jstat -gc <pid> <time> <amount>

jstat -gc `jps -l | grep weblogic\.Server | awk {'print $1'}` 1000 3

3 образца 1 одна секунда {{1} } подробнее см. Здесь

11
ответ дан 27 November 2019 в 04:32
поделиться
Другие вопросы по тегам:

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