Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检测OutOfMemoryError-使用G1时出现意外行为_Java_Memory Management_Out Of Memory_G1gc - Fatal编程技术网

Java 检测OutOfMemoryError-使用G1时出现意外行为

Java 检测OutOfMemoryError-使用G1时出现意外行为,java,memory-management,out-of-memory,g1gc,Java,Memory Management,Out Of Memory,G1gc,在阅读了这篇文章之后,我们决定在我们的项目中实现这样一个内存不足检测。不幸的是,对于G1 GC,它不能像预期的那样工作 使用的内存\u收集\u阈值\u的javadoc超过了说明 通知类型,表示在Java虚拟机花费精力回收内存池中未使用的对象后,内存池的内存使用率大于或等于其集合使用率阈值。此通知由MemoryMXBean发出。此通知类型的值为java.management.memory.collection.threshold.Excepended 当使用G1 GC时,所提到的在回收未使用对象方

在阅读了这篇文章之后,我们决定在我们的项目中实现这样一个内存不足检测。不幸的是,对于G1 GC,它不能像预期的那样工作

使用的
内存\u收集\u阈值\u的javadoc超过了
说明
通知类型,表示在Java虚拟机花费精力回收内存池中未使用的对象后,内存池的内存使用率大于或等于其集合使用率阈值。此通知由MemoryMXBean发出。此通知类型的值为java.management.memory.collection.threshold.Excepended

当使用G1 GC时,所提到的
在回收未使用对象方面花费的精力并不意味着完全GC。内存使用率测量太频繁,而不仅仅是在完全GC之后。这可能会导致过早的低内存检测


你有没有遇到过类似的问题?您对此有什么解决方案吗?

至少,旧一代的收集必须已经发生,才能超过收集阈值并发出通知。纯年轻的集合无法触发通知。除此之外,这似乎是一个正确阈值的问题,即通知阈值应(显著)高于触发并发收集的阈值(0.65 IIRC)。