我有一个测试系统,我看到终身堆使用率增加到100%然后回落到~50%。这种情况不断发生。
应用程序以下列JVM args启动:
-Xms512M -Xmx512M -ea -XX:OnOutOfMemoryError=/bin/kill -9 %p
我没有看到通常在应用程序重启时出现的任何日志。
答案 0 :(得分:1)
为什么要在OutOfMemoryError
上终止这个过程?相反,为什么不收集堆转储文件并查看为什么它已满?
Use: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/your/preferred/dumplocation
并使用Eclipse MAT打开生成的转储文件。
另外,我认为需要引用该选项:
"-XX:OnOutOfMemoryError=kill -9 %p"
参考你的问题:不,这个过程不会重启 - 它会在终身堆被填满时终止。