IBM JDK 、SUN JDK、HP JDK如何产生Heapdump文件


JAVA中,通过分析Heapdump文件可以检查程序是否存在内存泄露,但是这个文件一般是在程序遇到致命问题时才会产生,所以想问一下,如何事前生成这个文件,从而在程序尚末崩溃前找出问题的所在。

java debug

甜蜜的死亡 12 years, 4 months ago

SUN JDK生成Heapdump文件只需要在tomcat启动脚本中增加 HeapDumpOnOutOfMemoryError 参数
此参数需要Java SE release 5.0 update 14 或以上支持

设置示例:
set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx800m -XX:PermSize=64M -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpOnCtrlBreak

IBM JDK生成Heapdump文件的开关:
— export IBM_HEAPDUMP=true
— export IBM_HEAP_DUMP=true
— export IBM_HEAPDUMP_OUTOFMEMORY=true
— export IBM_JAVADUMP_OUTOFMEMORY=true
— export IBM_JAVACORE_OUTOFMEMORY=true
— export IBM_HEAPDUMPDIR=<directory_path>

HP JDK生成Heapdump文件需要在在环境变量上,加上export _JAVA_HEAPDUMP=1

Shana9 answered 12 years, 4 months ago

Your Answer