Я ищу утечку памяти в приложении GWT. Я начал с Chrome, чтобы создавать дампы кучи и сравнивать их после определенных действий.
В сводке по каждому дампу кучи я вижу, что после большого количества массивов, Maps, HashMaps одной из самых больших групп классов является класс HandlerManager.Bus. Каждый элемент HandlerManager.Bus содержит несколько карт. Каждый клик они накапливаются в куче, и они не удаляются GC.
Запуск GC вручную также не помогает.
Дальнейшее чтение показывает, что HandlerManager имеет отношение к ClickEvents и MouseEvents. Сейчас я ищу те события и исходный код, где они связаны с полями представлений, сетками и другим кодом gwt / gxt.
Пожалуйста, дайте несколько советов, что обычно может пойти не так в этих классах.
Я предполагаю, что есть некоторые статические классы и никогда не теряют ссылку на эти события, поэтому GC не может их удалить.
Жаль, что я не могу следить за объектами памяти в куче так же легко, как в MAT.
Спасибо за ваши предложения.