UseAdaptiveSizePolicy и другие параметры jvm
Опция JVM -XX:+UseAdaptiveSizePolicy определяется как часть эргономики точки доступа и может быть указана с пропускной способностью или приоритетом времени паузы.
Тем не менее, мой вопрос - правильно ли упоминать другие опции jvm, такие как NewSize и SurvivorRatio? Каково именно влияние этого?
2 ответа
Просто к вашему сведению, -XX:+UseAdaptiveSizePolicy
включен по умолчанию в любой последней версии Sun JVM.
Также я нашел статью:
Избегайте неприятностей:
-XX:SurvivorRatio=
опция несовместима с параметром JVM-XX:+UseAdaptiveSizePolicy
, Пожалуйста, используйте любой из них в зависимости от вашей ситуации.
Я не мог найти точный ответ для NewSize
, но, похоже, он устанавливает начальный размер молодого поколения, а не постоянный, поэтому он не является взаимоисключающим с UseAdaptiveSizePolicy
,
Тем не менее, вот несколько статей:
- http://download.oracle.com/javase/1.5.0/docs/guide/vm/gc-ergonomics.html
- http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
- http://developers.sun.com/mobility/midp/articles/garbagecollection2/
Однако в большинстве случаев, если вы настраиваете SurvivorRatio
захочет настроиться NewSize
а также MaxNewSize
,
Мой опыт работы с комбинациями нестандартных опций (-X) заключается в том, что они ведут себя немного по-разному в версиях и платформах JVM.
Если вы хотите быть уверенным в том, что является результатом набора параметров, проверьте реальные значения JVM с помощью jmap -heap
если возможно, например
Обнаружен клиентский компилятор. Версия JVM 1.5.0_14-b03 используя локальное распределение потоков. Mark Sweep Compact GC Конфигурация кучи: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 209715200 (200,0 МБ) NewSize = 2228224 (2,125 МБ) MaxNewSize = 4294901760 (4095,9375 МБ) OldSize = 1441792 (1,375 МБ) NewRatio = 8 SurvivorRatio = 32 PermSize = 8388608 (8,0 МБ) MaxPermSize = 134217728 (128,0 МБ) [...]