Java: Как мога да получа броя на екземплярите на конкретен клас от jmx

всичко

Предстои да контролира номерата на екземплярите на конкретен клас в JVM паметта.

Защо ? Тъй като бих искал да наблюдавам броя на екземплярите на няколко Java класа в моя tomcat 7 сървър. Бих искал да направя това, защото отнема твърде много време, за да се направят „изхвърляния на купчина“ с jmap и анализиране на купчината с JvisualVM.

Тук може да има команда jmap: /..../jdk1.7.0_79/bin/jmap -dump:format=b,file=filename.hprof [PID]

Ограничение: Бих предпочел да не променям кода си за тези "наблюдавани" класове. Мога да добавя Mbean към моя сървър, за да управлявам това.

Всъщност не знам как да извлека всички екземпляри на класове от HeapMemory. Може би съм на грешен начин да го направя...


person Pegazus    schedule 19.11.2015    source източник


Отговори (1)


Можете да използвате статична променлива за броене и да създадете MBean с метод, който връща тази променлива.

person VDanyliuk    schedule 19.11.2015
comment
Да, мислих за това, но в моя случай не е лесно да се направи. - person Pegazus; 19.11.2015