指定 Gcflags是 OutOfMemory 异常的可能解决方案,还是没有影响或程序是否会耗尽内存?
有问题的 Gcflags是:-XX:+UseConcMarkSweepGC
和 -XX:+CMSIncrementalMode
我问是因为我认为上面的标志(和一般的 Gcflags)可以调整 JVM 性能(相对于它的响应/速度),但它们对减少程序的最小内存需求没有影响.换句话说,如果没有足够的内存让程序运行完成(例如遇到 OutOfMemory 异常),再多的 JVM 调优也无法解决这个问题。
最佳答案
如果您收到 OutOfMemoryError: heap space
,您将无能为力。在 GC 将最后一个字节从堆中取出之前,JVM 永远不会抛出这个。
但是,如果您遇到 OutOfMemoryError: GC overhead limit exceeded
,那么您仍然可以采取一些措施来解决它,因为这是一个“软”错误,并且可能有一个配置设置将减少 GC 开销。非常不可能,我必须补充一点,但至少在理论上是可能的。
关于java - 是否可以通过指定 Gcflags来修复 OutOfMemory 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13018289/