Я пытаюсь контролировать размер "кучи" Java динамично. Кто-либо знает, как использовать maxmium память в процессе выполнения части кодов? Runtime.maxMemory () добиваются цели? Спасибо
MaxMemory ()
Возвращает максимальное количество памяти, которую Java будет использовать. Так что это не получит тебе то, что вы хотите. TotalMemory ()
- это то, что вы ищете. См. Документы
Существует большое количество предметов профилировщиков, которые должны помочь вам с этим. Популярный коммерческий инструмент Yourkit , и он получает Rave Reviews. Бесплатная альтернатива VisualVm , которую я использовал в прошлом и может обеспечить много проницательности.
Если вам нравится, вы можете визуально просмотреть много значений, профилирующих ваше приложение с JConsole.
http://docs.orcle.com/javase/6/docs/technotes/tools/docare/jconsole.html
Запустите приложение с помощью:
-Dcom.sun.management.jmxremote
, и приложение для вас будет доступно для выбора при запуске /bin/jconsole.exe
Также есть java.lang.management . Используйте управление Управление , чтобы получить экземпляр SmorymxBean
. У него есть методы, чтобы вернуть кучу и моментальный снимок использования памяти не куча.
С заявлением очевидно, но не делать ничего, чтобы раздражать своих пользователей. Например. Можем ли они потратить двадцать минут ввода данных, высекать на кофемашину и вернуться к кнопку «Отправить», чтобы найти таймера истек, заметил обновление, и их работа теряется из-за вынужденного перезапуска?
Если так, и я признаю это не было много мысли, если например Вы должны вносить изменения в веб-службу, которые нарушают текущий выпуск, не могли бы вы иметь новую версию веб-сервисов, такие, как пользователи не выброшены до истечения срока действия таймера, а блок работы завершен? Или это также указывает на очевидное?
-121--3753604-Еще одна бесплатная альтернатива используется Java-монитор . Посмотрите на это живой демонстрируют . Просто нажмите на любой из серверов, чтобы увидеть подробные графики на памяти кучи, памяти без кучи, файловых дескрипторов, базы данных баз данных и многое другое.
jstat -gc <pid> <time> <amount>
jstat -gc `jps -l | grep weblogic\.Server | awk {'print $1'}` 1000 3
3 образца 1 одна секунда {{1} } подробнее см. Здесь