我有EJB的企业应用程序.该应用程序的总大小为34兆.当我部署我的应用程序时一切都很好但是当我重新部署它时,总加载类的数量增加.我正在使用visualVM查看此信息.它应该是它应该是什么,或者它是一个内存泄漏.如何解决这个问题呢?谢谢
你有一个classloader泄漏!
您通常会发现,当您在任何 JavaEE应用程序服务器(包括Glassfish)上部署应用程序时,应用程序服务器将专门为您的应用程序创建一个新的类加载器.当您的应用程序初始化时,并且在运行时,该类加载器将加载新类,这些类将被置于永久内存中,称为PermGen
区域.
取消部署应用程序时,该类加载器应该是垃圾收集的,但有时这种情况不会发生,因为某些事情导致引用持久存在.当您重新部署应用程序,应用程序服务器经过相同的动作和以前一样,但现在,有可用的内存较少.
有关这方面的更多信息,请查看Frank Kieviet的名为Classloader Leaks的博客文章以及如何修复Classloader Leaks的后续内容.