1 堆
OutOfMemoryError: Java heap space
-Xms256m
-Xmx1024m
dump内存镜像
jmap -dump:file=d:/aaa.hprof pid
自动dump内存镜像
-XX:HeapDumpPath=./java_pid<pid>.hprof 指定导出堆信息时的路径或文件名
-XX:-HeapDumpOnOutOfMemoryError 当首次遭遇OOM时导出此时堆中相关信息
java崩溃自动打印日志
-XX:ErrorFile=d:/hs_err_pid<pid>.log
GC日志
-XX:+PrintGC 输出GC日志
-XX:+PrintGCDetails 输出GC的详细日志
-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息
-Xloggc:../logs/gc.log 日志文件的输出路径
2 非堆
OutOfMemoryError: PermGenspace
-XX:PermSize=64M
-XX:MaxPermSize=128m
3 栈
OutOfMemoryError:unable to create new nativethread
-Xss512k
StackOverflowError
-Xss2m
杀core jstack pid >> d:/a.txt
4 句柄数资源
too many open files
Linux ulimit -n 65535
Windows 65535
5 GDI资源
listener加入代码,显式dispose资源
IMAGE Font
6 DLL
GDIView.exe
总可用内存 / XSS = count
JDK32位 2G
40M+40M+80M =200M
操作系统预留 DLL
1.8G