Tomcat - SharedLoader - увеличена куча - PullRequest
0 голосов
/ 19 июня 2020

У меня Tomcat 9.0.35, и я изменил некоторые библиотеки из папки webapps web-inf на Tomcat SharedFolder, и атрибут «делегат» был истинным (поэтому Tomcat сначала смотрит на Common, после Shared, а затем на Webapps). Таким образом, веб-приложения становятся меньше, а в папке LIB появляются новые файлы.

В сценарии web-inf размер кучи составлял 800 МБ, а запуск выполнялся за 100 мс. В сценарии SharedFolder размер кучи увеличился до 1,1 ГБ, когда я ожидаемое уменьшение, но запуск уменьшился до 75 мс.

Мне не терпится узнать, почему увеличилась куча, если количество веб-приложений уменьшилось, и моей целью было также потреблять меньше памяти.

Может ли кто-нибудь помочь мне понять это ? Это проблема?

[EDIT] Ниже у нас есть дерево доминаторов с банками webinf Dominator tree with webinf jars

And after moving jars to shared lib, here's dominator tree Дерево доминатора с банками в общей папке

Я не могу понять причину этих изменений, почему Finalizer так сильно разросся ...

1 Ответ

0 голосов
/ 04 июля 2020

После просмотра этого видео , я просмотрел статистику Dominator Tree и Finalizer и увидел, что на класс ZipFileInputStream слишком много ссылок. Этот класс переопределяет метод finalize и из-за этого выходит из цикла сборщика мусора. Опять же, ища дочерние узлы ZipFileInputStream, я нашел библиотеки, которые добавил в общий загрузчик

...