Почему Runtime.maxmemory () изменяет его значение на отдельных вызовах?JAVA

Программисты JAVA общаются здесь
Anonymous
 Почему Runtime.maxmemory () изменяет его значение на отдельных вызовах?

Сообщение Anonymous »

Я отлаживал некоторые проблемы Outofmemororror в моем коде, поэтому я создал метод, который распечатал статистику ОЗУ, включая Max Memory.
На мой взгляд, множественное Попытки вызовы метода возвращали различные значения для максимальной оперативной памяти. Вот актуальный фрагмент. < /P>

Код: Выделить всё

... -Xmx=$SOME_VAR -Xms=$SOME_VAR

Из -за этого фрагмента вывод из Runtime.totalmemory () в конечном итоге является таким же, как и выход из Runtime.maxmemory () .
Как получается, что выход из Runtime.maxmemory () Постоянно изменяется? По общему признанию, это не слишком много в большинстве случаев. Может быть, половина гигабайта. Но иногда эти половины концертов могут составлять почти 3 гигабайта разницы с тех пор, когда мы начали. /code> измениться со временем? Это не похоже на полученное оборудование или потерянное оперативное окно, верно? и прямо перед тем, как я запускаю Java, моя система имеет примерно 29 гигабайт свободных. Распечатайте разные значения. < /p>

Код: Выделить всё

for (int i = 0; i < 10; i++) {
Thread.sleep(10_000);
System.out.println(Runtime.getRuntime().maxMemory());
}
Иногда я получаю 23,5, в другой раз, я получаю 24 и т. Д.


Подробнее здесь: https://stackoverflow.com/questions/794 ... rate-calls

Вернуться в «JAVA»