Подробные журналы Java GC - PullRequest
       1

Подробные журналы Java GC

5 голосов
/ 03 сентября 2011

Sun JVM выводит подробные журналы GC в StdOut, когда используются следующие аргументы.

 -verbose:gc
 -XX:+PrintGCTimeStamps
 -XX:+PrintGCDetails

Однако мне не нужен вывод в StdOut, и мне не нужны детали для каждого отдельного GC. Можно ли получить доступ к данным, используемым для этих журналов программно? Я хотел бы иметь возможность регистрировать в моем собственном файле журнала объем выделенной / собранной памяти и в идеале средний размер объекта с течением времени.

Ответы [ 2 ]

4 голосов
/ 03 сентября 2011

Вам необходимо добавить

-Xloggc:log_file_name

Этот файл переинициализируется при каждом запуске JVM, поэтому не забудьте переместить его в безопасное место, если хотите сохранить его для анализа.

Полный список многих параметров командной строки, которые понимает Java, можно найти здесь для Java 6.

0 голосов
/ 25 апреля 2012

Вместо этого вы можете использовать JMX Beans для пулов памяти и GC. У них есть преимущество в том, что вы получаете счетчики, которые вы можете запросить по бесплатному расписанию. Недостатком является то, что они различаются для разных производителей ВМ, версий и настроек GC.

Например

java.lang:type=GarbageCollector,name=Copy
  CollectionCount, ColletionTime, LastGCInfo[1].duration,memoryUSageBefore/After
java.lang:type=GarbageCollector,name=MarkSweepCompact
  CollectionCount, CollectionTime, LastGCInfo[1].duration,memoryUSageBefore/After
java.lang:type=Memory
  HeapMemoryUsage[1].commited,init,max,used
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...