Spec-Zone .ru
спецификации, руководства, описания, API
|
Следующие изменения вступают в силу с J2SE 5.0.
На машинах класса сервера, выполняющих сервер VM, сборщик "мусора" (GC) изменился от предыдущего последовательного коллектора (-XX:+UseSerialGC
) к параллельному коллектору (-XX:+UseParallelGC
). Можно переопределить это значение по умолчанию при использовании -XX:+UseSerialGC
параметр командной строки к java
команда.
На машинах класса сервера, работающих или VM (клиент или сервер) с параллельным сборщиком "мусора" (-XX:+UseParallelGC
) начальный размер "кучи" и максимальный размер "кучи" изменились следующим образом.
Больше из 1/64-ой из физической памяти машины на машине или некотором разумном минимуме. Перед J2SE 5.0, начальный размер "кучи" по умолчанию был разумным минимумом, который изменяется платформой. Можно переопределить это значение по умолчанию, используя -Xms
параметр командной строки.
Меньший из 1/4-ой из физической памяти или 1 Гбайт. Перед J2SE 5.0, максимальный размер "кучи" по умолчанию составлял 64 МБ. Можно переопределить это значение по умолчанию, используя -Xmx
параметр командной строки.
Отметьте: границы и части, данные для размера "кучи", корректны для J2SE 5.0. Они, вероятно, будут отличаться в последующих выпусках, поскольку компьютеры становятся более мощными.
Параллельный сборщик "мусора" (UseParallelGC
) выдает исключение из памяти, если чрезмерное количество времени проводится, собирая небольшое количество "кучи". Чтобы избежать этого исключения, можно увеличить размер "кучи". Можно также установить параметры -XX:GCTimeLimit=
ограничение по времени и -XX:GCHeapFreeLimit=
предел пространства, где:
Верхний предел количества времени, проведенного в сборке "мусора" в процент полного времени (значение по умолчанию 98).
Более низкий предел на количестве пространства, освобожденного во время сборки "мусора" в проценте максимальной "кучи" (значение по умолчанию 2).
-XX:+UseAdaptiveSizePolicy
используемый по умолчанию с -XX:+UseParallelGC
сборщик "мусора" изменился, чтобы рассмотреть три цели: Проверки реализации (в этом порядке):
-XX:MaxGCPauseMillis=
nnnПо умолчанию нет никакой цели времени паузы. Есть определенные ограничения на то, как хорошо цели времени паузы можно удовлетворить. Время паузы для GC зависит от количества живых данных в "куче". Незначительные и главные наборы зависят по-разному от количества живых данных. Этот параметр должен использоваться с осторожностью. Значение, которое является слишком маленьким, заставит систему проводить чрезмерное количество времени, делающее сборку "мусора".
-XX:GCTimeRatio=
nnnНапример -XX:GCTimeRatio=19
устанавливает цель 5 % полного времени для GC и цели пропускной способности 95 %. Таким образом, приложение должно получить в 19 раз больше времени как коллектор.
По умолчанию значение 99, означая, что приложение должно получить по крайней мере в 99 раз больше времени как коллектор. Таким образом, коллектор должен работать не больше 1 % полного времени. Это было выбрано как хороший выбор для серверных приложений. Значение, которое слишком высоко, заставит размер "кучи" расти к ее максимуму.
Не выбирайте максимальное значение для "кучи", если Вы не знаете, что "куча" больше чем максимальный размер "кучи" по умолчанию. Выберите цель пропускной способности, которая достаточна для Вашего приложения.
В идеальной ситуации "куча" вырастет к значению (меньше чем максимум), который будет поддерживать выбранную цель пропускной способности.
Если "куча" растет к ее максимуму, пропускная способность не может быть встречена в пределах того максимума. Установите максимальную "кучу" столь же большую, как Вы можете, но не больше чем размер физической памяти на платформе, и выполнять приложение снова. Если цели пропускной способности все еще нельзя удовлетворить, то это слишком высоко для доступной памяти на платформе.
Если цели пропускной способности можно удовлетворить, но есть паузы, которые являются слишком длинными, выбирают цель времени паузы. Это будет, вероятно, означать, что Вашей цели пропускной способности не удовлетворят, так выберет значения, которые являются приемлемым компромиссом для приложения.