我知道关于-XX:+HeapDumpOnOutOfMemoryError https://stackoverflow.com/q/542979/260805JVM 参数。我也知道-XX:OnOutOfMemoryError="cmd args;cmd args" https://stackoverflow.com/a/3821180/260805然后kill -3 <JVM_PID>
将请求堆转储。
问题:我怎样才能确保我,在OutOfMemoryError
,首先进行完整的堆转储并then转储完成后强制重新启动(或终止)?是我最好的选择-XX:OnOutOfMemoryError="kill -3 %p;sleep <time-it-takes-to-dump>;kill -9 %p"
?
java -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError="kill -9 %p" TestApp
JVM会先dump堆,然后执行OnOutOfMemoryError命令(proof) http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/5755b2aee8e8/src/share/vm/utilities/debug.cpp#l295.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)