Подтвердить что ты не робот

Во время выполнения, как может программа java указать, сколько памяти она использует?

Во время выполнения, как может программа java указать, сколько памяти она использует?

Мне все равно, насколько он эффективен!

4b9b3361

Ответ 1

Ответ VonC - это интерактивное решение - если вы хотите знать программно, вы можете использовать Runtime.totalMemory(), чтобы узнать общую сумму используемые JVM, и Runtime.freeMemory(), чтобы узнать, сколько из них все еще доступно (то есть оно выделено JVM, но не выделенные в JVM - новые объекты могут использовать эту память).

Это методы экземпляра - используйте Runtime.getRuntime(), чтобы сначала получить экземпляр singleton.

Ответ 2

Если у вас есть java1.6 где-то и ваша программа работает в java 1.4.2, 1.5 или 1.6, вы можете запустить visualVM session, подключитесь к вашему приложению и следуйте за памятью (и многое другое)

image of monitoring application with Visual VM

(Изображения не отображаются в данный момент, поэтому, пожалуйста, ссылайтесь на Мониторинг приложения для иллюстрации.)

Ответ 3

Это будет неточно, но для приблизительной оценки просто вычтите Runtime.getRuntime.freeMemory() из Runtime.getRuntime.totalMemory(). Сделайте это в начале программы, чтобы получить представление об использовании служебной памяти JVM's и с перерывами в последнем выполнении.