如何解决检测到OutOfMemoryError-使用G1时发生意外行为
在阅读文章Detecting Java OutOfMemoryError before it happens之后,我们决定在我们的项目中实现这种内存不足检测。不幸的是,使用G1 GC不能按预期工作。
使用过的MEMORY_COLLECTION_THRESHOLD_EXCEEDED
的Javadoc说
通知类型,表示在Java虚拟机花费大量精力回收该内存池中未使用的对象之后,内存池的内存使用量大于或等于其收集使用量阈值。此通知由MemoryMXBean发出。此通知类型的值是java.management.memory.collection.threshold.exceeded。
使用G1 GC时,提到的expended effort in recycling unused objects
并不意味着完整的GC。内存使用率测量非常频繁地执行,而不仅仅是在完全GC之后。可能会导致过早的内存不足检测。
您遇到类似的问题吗?您有什么解决办法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。