Проанализируйте дамп кучи с помощью Visual VM, который содержит несколько веб-приложений

Я получил дамп кучи сервера Tomcat, на котором размещено несколько веб-приложений.

Есть несколько классов, которые имеют экземпляры в каждом приложении. Когда я перечисляю все классы, содержащиеся в дампе, я получаю несколько строк для этих классов, каждый из которых показывает различное количество экземпляров. Таким образом, кажется, что каждая строка показывает количество экземпляров указанного класса в одном из веб-приложений.

Когда я использую OQL для подсчета всех экземпляров класса, например, select count( heap.instances(myClass)), я получаю не общую сумму всех экземпляров myClass, а сумму, равную одному из тех, что показаны в ранее упомянутом списке.

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

Что я могу сделать, чтобы получить доступ ко всем экземплярам дампа кучи?

1 ответ

Кажется, что вы можете по крайней мере перемещаться по нужным экземплярам, ​​дважды щелкнув соответствующую запись в представлении классов. Но по-прежнему навигация с OQL кажется невозможной.

Использование Eclipse Memory Analyzer помогает в этом, но имеет и другие недостатки, поэтому, к сожалению, это не сильно помогает.

Другие вопросы по тегам