首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java内存问题: Java.lang.ref.finalizer对象

Java内存问题: Java.lang.ref.finalizer对象
EN

Stack Overflow用户
提问于 2021-10-04 13:47:50
回答 1查看 174关注 0票数 2

在大多数关于终结器对象引起的内存泄漏的研究中,无论是在我们的代码中还是在依赖的库中,都应该覆盖finalize方法。但在我的整个项目中,它没有任何用处。(我使用的是Java8)

我正面临着一个内存问题,对于我的服务,只要我重新启动服务,可用内存就会开始减少,并且在7天内减少了95%,随后会出现频繁的警告。

上图显示了Y轴上的可用内存,可以看到减少的内存。上图中的所有峰值都用于重新启动服务。

当我在eclipse Mat中查看堆转储时,我看到了以下内容:

可以看出,几乎所有的空间都只由一个对象占用,即java.lang.ref.Finalizer,但是当我在项目中进行现场Java搜索时,我没有看到任何使用finalize()方法的代码。

我在寻找内存泄漏的过程中遇到了死胡同。是否还有其他可能导致此问题的原因。

EN

回答 1

Stack Overflow用户

发布于 2021-10-04 13:54:31

我要做的第一件事就是试着理解Finalizer是从哪里来的--检查你的库,试着找出它!也许他们甚至在他们的自述文件/文档中提到了什么?

在那之后,看看这个answer/question,它可以给你一些见解。此外,在我看来,这与GC有关。既然你提到了java 8,你应该使用并行GC (默认的),这是不错的,但你可以试着使用它,改变GC,看看其他选项是否对你更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69437142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档