在最近的系统测试部署之后,我们的一个 servlet 受到的打击比平时大得多,我们注意到内存开始攀升,weblogic 最终会死掉。我的实习生,我很自豪,发现了内存泄漏的根源。
每当有请求进入时,都会调用此行:
JAXBContext jc = JAXBContext.newInstance(“ruby.oracle_servlet.schemas”);
由于某种原因,该对象永远不会被垃圾收集。一旦我们将它设为静态并移动到我们初始化它的位置,我们的内存泄漏就消失了。
我们的另一位开发人员在独立的 Java 应用程序中将那行代码放入了一个 while 循环中,并且还看到内存不断增加。
有谁知道为什么该对象没有被垃圾收集?
谢谢