在大多数关于由终结器对象引起的内存泄漏的研究中,无论是在我们的代码中还是在依赖库中,都应该覆盖 finalize 方法。但在我的整个项目中,它无处使用。(我正在使用 Java8)
我正面临内存问题,对于我的服务,一旦我重新启动服务,可用内存就会开始减少,并且在 7 天内它会下降 95%,并且稍后会出现频繁的警告。
上图显示了 Y 轴上的可用内存,可以看到它减少了。上图中的所有峰值都用于重新启动服务。
当我通过 eclipse Mat 中的堆转储时,我看到以下内容:
可以看出,几乎所有空间仅由 1 个对象占用,即java.lang.ref.Finalizer
,但是当我在项目中进行字段 Java 搜索时,我没有看到任何使用 finalize() 方法的代码。
我已经走到了死胡同,试图找到内存泄漏。是否有任何其他原因可能导致该问题。