Java — значение MaxPermSize по умолчанию — Sun JVM

Возможный дубликат:
Значения по умолчанию для Xmx, Xms, MaxPermSize на машинах не серверного класса

Мы используем Sun JVM, и нам нужно знать значение по умолчанию, присвоенное MaxPermSize.

Мы не передаем никаких аргументов в JVM

из этой темы Почему размер PermGen по умолчанию такой маленький? Я понимаю, что это 64 МБ. Во всех случаях это 64 МБ или это зависит от размера оперативной памяти системы?


person Kumar D    schedule 05.01.2013    source источник
comment
Какая версия Sun (ну, Oracle) JVM? Я точно знаю, что для 1.6.x все еще 64 МБ, для более поздних версий без понятия, независимо от объема ОЗУ (x86_64, 32-битные или 64-битные JVM).   -  person fge    schedule 05.01.2013
comment
@BrianRoach, важная вещь, которую я хочу знать, это то, зависит ли значение от размера ОЗУ.   -  person Kumar D    schedule 05.01.2013


Ответы (2)


Это не зависит от доступной оперативной памяти, но зависит от:

  • версия JVM, которую вы используете — более старые версии выделяли меньше памяти, так как в то время у компьютеров было меньше оперативной памяти
  • архитектура (для 64-битной требуется больше, чем для 32-битной, поэтому память по умолчанию также больше)
  • фактические конфигурации ОС, поскольку некоторые операционные системы могут настраивать разные значения по умолчанию, хотя на самом деле это не JVM, который ведет себя по-другому.
person Sergiu Dumitriu    schedule 05.01.2013

Вы можете узнать значение любых флагов / параметров JVM HotSpot, включив -XX:+PrintFlagsFinal в качестве параметра командной строки.

Значения по умолчанию для многих параметров зависят от версии JVM, аппаратной/операционной платформы и/или объема физической памяти.


FWIW - на моей машине значение MaxPermSize по умолчанию равно 85983232... в соответствии с описанным выше методом.

person Stephen C    schedule 05.01.2013