Проанализируйте дамп кучи с помощью Visual VM, который содержит несколько веб-приложений
Я получил дамп кучи сервера Tomcat, на котором размещено несколько веб-приложений.
Есть несколько классов, которые имеют экземпляры в каждом приложении. Когда я перечисляю все классы, содержащиеся в дампе, я получаю несколько строк для этих классов, каждый из которых показывает различное количество экземпляров. Таким образом, кажется, что каждая строка показывает количество экземпляров указанного класса в одном из веб-приложений.
Когда я использую OQL для подсчета всех экземпляров класса, например, select count( heap.instances(myClass)), я получаю не общую сумму всех экземпляров myClass, а сумму, равную одному из тех, что показаны в ранее упомянутом списке.
Поэтому мне кажется, что по какой-то причине запросы OQL ограничены одним контекстом веб-приложения, хотя дамп кучи содержит несколько.
Что я могу сделать, чтобы получить доступ ко всем экземплярам дампа кучи?
1 ответ
Кажется, что вы можете по крайней мере перемещаться по нужным экземплярам, дважды щелкнув соответствующую запись в представлении классов. Но по-прежнему навигация с OQL кажется невозможной.
Использование Eclipse Memory Analyzer помогает в этом, но имеет и другие недостатки, поэтому, к сожалению, это не сильно помогает.