Профилирование количества собранных мусором экземпляров объекта на класс - PullRequest
3 голосов
/ 14 ноября 2011

Я ищу инструмент, который может обеспечить VisuaVM-подобное профилирование для живых объектов, но в режиме без GUI.

Доступ к функциональности Visual VM, на которую я ссылаюсь, можно получить, перейдя в «Profiler»и нажмите кнопку «Память».

Установив предустановку профиля «Распределение объектов профиля и ГХ» для 1 объекта (всех объектов).Это дает мне именно то, что мне нужно, в режиме автообновления, который я могу отфильтровать по интересующему меня классу.

Однако я хочу иметь возможность экспортировать таблицу «живых объектов» в текстфайл, для каждого снятого снимка (Visual VM обновляется каждые одну секунду).Очевидно, что указание и щелчок не могут быть решением ...

Кто-нибудь знает такой профилировщик "командной строки"?

Я смотрел на jmap, который предоставляет дампы кучи, но этоэто слишком дорого (дамп занимает слишком много времени, меня просто интересует количество объектов).

Существует коммерческий инструмент под названием YourKit, но я не знаю, может ли он делать то, что мне нужно (а такжекажется довольно дорогим для типа «одноразового» использования, для которого он мне нужен).

Если бы я мог использовать VisualVM как есть, но он добавлял вывод в файл (вместо обновления его GUI)было бы идеально ...

1 Ответ

2 голосов
/ 05 января 2013

Я думаю, гистограммы классов - это то, что вы ищете.Вы можете собирать гистограммы через равные промежутки времени, и это покажет вам количество объектов каждого класса и занимаемое пространство .Затем вы можете самостоятельно проанализировать вывод текста, чтобы:

  • сравнить две гистограммы, чтобы увидеть распределение / освобождение экземпляра
  • фильтра по имени класса
  • отслеживание занимаемого пространстваэкземпляров классов с течением времени

Собрать гистограмму классов с помощью jmap -histo $pid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...