Jetty 8服务器上的内存泄漏

时间:2012-08-29 11:13:06

标签: memory-leaks jetty finalizer jetty-8

我已经进行了内存转储,用内存分析器对其进行了分析。它显示了java.lang.ref.finalizer对象占用的73%的内存。我去看看这个非常大的物体里面是什么。我发现它看起来像物体的递归踪迹。看起来如下

Finalizer
|__ Finalizer (recursive)
|__ java.io.FileInputStream or org.eclipse.jetty.util.resource.FileResource

在FileResource中,我找到了war文件解压缩的路径,但找不到FileInputStream对象中的内容。

此处还可以找到截图。 https://lh4.googleusercontent.com/-uZTZ031DlqI/UD33kMskuZI/AAAAAAAABYo/eOrqw65k_Mw/s1179/summary.png

https://lh6.googleusercontent.com/-yWBPUV_71js/UD33kAYYDEI/AAAAAAAABYk/J9fF_WwOeO4/s1074/details.png

请告诉我。

1 个答案:

答案 0 :(得分:2)

这本身并不是泄漏。请阅读:http://www.oracle.com/technetwork/articles/javase/finalization-137655.html关于JVM中的终结机制。

如果创建了太多的可调用对象,则终结器可能会成为问题,在您的情况下是FileInputStream。您可以尝试稍微减小堆大小,以便垃圾收集器更频繁地运行并更快地处理它们。

或者,如果可能的话,更好地减少对FileInputStreams的使用。