Мы пишем большое приложение с графическим интерфейсом на Scala с большим количеством классов, и нам пришлось увеличить пространство PermGen, чтобы иметь возможность загружать все классы. Само приложение показывает серию экранных действий, каждое из которых загружает собственный большой набор классов. В любой момент времени загружается / отображается только одно действие. Пройдя пару действий, мы получили OutOfMemoryError
в пространстве PermGen.
Я понимаю, что пространство PermGen собирает мусор, как и остальная часть кучи , но мне интересно узнать, могу ли я уменьшить необходимое пространство PermGen, например, один ClassLoader
на действие, чтобы разрешить выгрузку классов.
Итак: