正如上面的评论所解释的那样,这听起来不像是内存泄漏。
在Java应用程序中,JVM将创建对象并耗尽内存。随着时间的推移,一些对象将超出范围(有资格进行垃圾收集),但在下一次收集发生之前,它们仍然会在堆中“耗尽内存”。这不是问题,它是java的工作方式。当JVM决定它需要释放内存时,它将运行一个集合并且使用的内存应该丢弃。
你应该关心你所看到的吗?我可以想到你应该有两个原因,一个你为什么不应该这样做。如果你的垃圾收集释放了足够的内存以便应用程序继续运行,那么收集不会影响性能,而你是一个忙碌的人,有其他事情可做,那么我认为没有理由你应该关心。
但是,如果你担心你不明白应用程序的工作原理,或者你有一个“太多内存”问题的原因(你将希望将来运行更多数据的应用程序,或者想要要在将来分配较少的堆来运行它,那么您可能想要调查。
如果在应用程序什么都不做的时候内存正在用完,那么我会专注于那个。当它什么都不做的时候它真正做了什么?我打赌它正在做'某事'