G1GC Значения округления бревен для больших куч

1

Ведение журнала G1GC означает, что значения заполнения кучи округлены до МБ или ГБ, есть ли способ распечатать все значения в КБ или МБ?

Я хочу проанализировать ставки распределения и продвижения, и это округление значений вводит неточность.

Например, событие GC, 11.7G->1826.2M ниже, показывает, что общее занятие кучи уменьшается с 11.7G->1826.2M который показывает только округленное значение 11.7G для общего размера кучи до сбора.

4592.204: [GC pause (G1 Evacuation Pause) (young)
  [Eden: 9804.0M(9804.0M)->0.0B(9800.0M) Survivors: 112.0M->86.0M 
  Heap: 11.7G(15.0G)->1826.2M(15.0G)]
  ...

Используемые флаги VM:

-Xms16g -Xmx16g -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log

Использование Hotspot JVM 1.8.0-b132.

Теги:
logging
garbage-collection
g1gc

1 ответ

3
Лучший ответ

См. Исходный код OpenJDK 7u hotspot здесь и здесь.

Обе точки используют методы byte_size_in_proper_unit и proper_unit_for_byte_size расположенные здесь.

Я считаю, что единственный способ изменить журналы G1GC из PrintGCDetails или PrintGC - перекомпилировать JVM, и это можно сделать только с OpenJDK, а не с JVM Oracle.

Дополнительную информацию о формате вывода см. В следующей qaru.site/questions/303471/....

Вы также можете использовать инструмент jstat с параметрами -gc и -gc new для данных в журналах G1GC, выбранных в разное время только в КБ, см. Здесь для получения дополнительной информации об использовании jstat. Если вы хотите написать аналогичный инструмент Jstat, источник находится здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню