На мой взгляд, множественное Попытки вызовы метода возвращали различные значения для максимальной оперативной памяти. Вот актуальный фрагмент. < /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());
}
< /code>
Иногда я получаю 23,5, в другой раз, я получаю 24, и т. Д. < /p>
Это также может помочь - я измеряю это на AWS EC2 пример. Я сомневаюсь, что это поможет, но я добавляю это на случай.
Подробнее здесь: https://stackoverflow.com/questions/794 ... rate-calls