我在我的应用程序中使用“-XX:+UseConcMarkSweepGC”,当内存不足错误关闭时,我的应用程序转换为自身的弱形式(此时它记录“并发模式失败”)。在这种形式下它可以存活很长时间期间,这对我来说是个大麻烦。我需要找到帮助我的应用程序“快速而轻松地死去”的方法。
我用谷歌搜索了这个:“-XX:GCHeapFreeLimit=nnn 其中 nnn 是一个介于 0 和 100 之间的数字,给出了 GC 后必须空闲的堆的最小百分比。默认值为 2”,但我遇到了麻烦。我使用“-XX:GCHeapFreeLimit=50”配置我的 JVM,我认为它不会改变任何东西
日志 2013-08-14T17:31:49.776+0400: [完整 GC [CMS: 917504K->908590K(917504K), 2.8014727 秒] 1032192K->908590K(1032192K), [CMS Perm : (65536->2071K) , 2.8015412 secs] [Times: user=2.79 sys=0.00, real=2.80 secs]
1032192K->908590K(1032192K) - 这不是 50 分