Метрики системы ведения журнала от JAR - PullRequest
0 голосов
/ 03 декабря 2018

Допустим, есть приложение x, которое использует внешний jar y.

x использует datadog-api для регистрации метрик и y тоже.

Я хочу посмотреть, можно ли регистрировать системные показатели, относящиеся только к банке .ie, сколько циклов gc использует банку?

Используя system.gc, мы можем выяснить, каксколько циклов использует все приложение на этом хосте, но как насчет конкретного jar?

Пожалуйста, уточните, если кто-то знает.

1 Ответ

0 голосов
/ 03 декабря 2018

Все классы, составляющие ваше приложение, выделяют память из одного и того же «пула» памяти.Хотя JVM может знать сайт (например, класс / метод / строку) запроса на выделение памяти, который не был выполнен (и который привел к GC), он не знает или не понимает, что класс является «ответственным» за GC.

Может случиться, что x выделит 99,99% памяти, доступной в eden, а затем появится некоторый код в y, попытается выделить несколько байтов и появится GC.Является ли y действительно ответственным за GC?

Если вы хотите определить, какие классы отвечали за распределения, которые использовали много кучи, вам нужно было бы запустить свой код с профилировщиком некоторого вида.Сначала вы захотите найти, какие классы были наиболее распределены, а затем вы захотите, откуда эти классы были выделены.Предположительно, вы сможете отобразить имя метода, в котором он размещен, обратно на банку, в которой объявлен этот метод.

...