一尘不染

Java应用程序中的已加载类数中可能的内存泄漏

java

我最近开始分析我使用VisualVM编写的osgi
Java应用程序。我注意到的一件事是,当应用程序开始(通过JMS)向客户端发送数据时,已加载类的数量开始以稳定的速度增加。但是,堆大小和PermGen大小保持不变。即使停止发送数据,类的数量也永远不会减少。这是内存泄漏吗?我认为是这样,因为已加载的类必须存储在某个位置,但是即使我将应用程序运行了几个小时,堆和permgen也不会增加。

有关我的分析应用程序的屏幕截图,请点击此处


阅读 212

收藏
2020-12-03

共1个答案

一尘不染

您是否以某种方式动态地动态创建新类?

谢谢你的帮助。我想出了问题所在。在我的一个课程中,我使用Jaxb创建XML字符串。为此,JAXB使用反射来创建一个新类。

JAXBContext context = JAXBContext.newInstance(this.getClass());

因此,尽管JAXBContext并没有在堆中说出来,但是已经加载了这些类。

我再次运行了程序,并且看到了正常的平稳状态。

2020-12-03