Я использую VisualVm для профилирования веб-приложения, запущенного в Tomcat. Tomcat продолжает сбой с ошибками памяти, поэтому я пытаюсь выяснить, что в моем приложении вызывает его. Когда я запускаю профилировщик памяти из VisualVm, похоже, что большая часть памяти занята String/Char [], но я, если не смогу вычислить контейнеры более высокого уровня этих строк, знание меня очень мало. При проведении исследований я нашел OQL и rsizeof()
, поэтому могу, например, SELECT rsizeof(o) FROM instanceof my.package.class o
, но я не знаю, какой класс мне нужен, поэтому мне бы очень хотелось, чтобы у меня было что-то вроде SELECT it.name, rsizeof(o) FROM instanceof Filter(Heap.classes(), "/my.package./(it.name)");
, но это не работает.в VisualVM/OQL Как получить общий размер всех экземпляров объектов из определенного пакета
Так что же будет с OQL? В идеале я бы хотел ограничить Топ-10 или около того самым большим и отсортировать по размеру.