JDK1.6.45常用基本参数
-server 服务模式启动
-verbose:gc 开启gc日志打印
-Xms值} 最小堆
-Xmx{值} 最大堆
-Xss{值} 栈容量
-Xmn{值} 新生代的内存空间大小,注意:此处的大小是(eden + 2 survivor space)
-Xloggc 日志文件路径,例如-Xloggc:/var/logs/gc.log
-XX:+HeapDumpOnOutOfMemoryError 参数表示当JVM发生OOM时,自动生成DUMP文件。
-XX:HeapDumpPath=${目录}参数表示生成DUMP文件的路径,也可以指定文件名称,例如:XX:HeapDumpPath=${目录}/java_heapdump.hprof。如果不指定文件名,默认为:java_<pid>_<date>_<time>_heapDump.hprof。
-XX:PermSize={值} 方法区最小内存值
-XX:MaxPermSize={值} 方法区最大内存值
-XX:MaxDirectMemorySize={值}堆外内存
-XX:+DisableExplicitGC 禁用显示GC的System.gc()方法
-XX:+PrintGC
-XX:+PrintGCDetails 打印GC收集详情
-XX:+PrintGCTimeStamps
-XX:+PrintFlagsInitial 显示所有可设置参数及默认值
-XX:+PrintFlagsFinal
经验
新生代与老年代的默认比值是1:2,占用整个堆的大小。持久代则是另一块内存区域,需要单独设置。在新生代中,Eden与1个Survivor的比值是6:1,新生代:Survivor=8:1
测试内存溢出
启动配置(在eclipse中,则配置VM arguments)
其中需要注意,c:/tmp目录必须存在,否则文件名无法生成
-server -verbose:gc -Xms10m -Xmx10m -Xss128k -Xloggc:C:/tmp/gc.log -XX:PermSize=5m -XX:MaxPermSize=5m -XX:MaxDirectMemorySize=10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:/tmp
from:http://my.oschina.net/u/194300/blog/217887