我们的应用程序面临一个奇怪的内存泄漏问题。
GC 配置:ParNew + CMS
某种类型的对象过早地被提升到老年代并导致严重的碎片问题。
关于这些对象:这些是使用 Java 辅助库创建的代理对象。
由于这些对象的不必要的提升,老年代被污染的太快,严重的碎片正在发生。
我们的观察:
注意:finalize() 只是为了跟踪目的而添加的。即使没有 finalize() 老一代促销也会发生。
请建议如何进一步进行并解决此问题。
另一个有趣的更新:使用 G1GC,当使用 G1GC 时,对象会被正确清除。使用 finalize() 方法检查,在第一个循环之后,对象变得无法访问。在下一个小循环之后,对象不在那里。对于 G1GC,问题不存在。
java garbage-collection memory-leaks java-memory-leaks java-assist