JVM3-参数设置

-XX:+printGC 打印GC
-XX:+PrintGCDetails 打印GC详细信息,打印堆上各个空间的大小和使用率

-XX:+PrintGCTimeStamps 打印GC发生的时间戳
-Xloggc:log/gc.log 指定GC log的位置,以文件输出 帮助开发人员分析问题
-XX:+PrintHeapAtGC 打印GC前后堆空间的各个代使用情况和总空间
-XX:+TraceClassLoading 监控类的加载
-XX:+PrintClassHistogram 按下Ctrl+Break后,打印类的信息 显示:序号、实例数量、总大小、类型 [B指字节数组
-Xmx 最大堆
-Xmx 最小堆

空闲内存
System.out.println(Runtime.getRuntime().freeMemory());
使用内存
System.out.println(Runtime.getRuntime().totalMemory());

-Xmn 设置新生代大小
-XX:NewRatio 新生代和老年代的壁纸
4表示 新生代:老年代= 1:4 年轻带占堆得20%
-XX:SurvivorRation 一个suvivor与年轻带的比值 8 代表 survivor:eden 为 1:8

-XX:+HeapDumpOnOutOfMemoryError OOM时导出堆到文件
-XX:+HeapDumpPath 导出文件路径
-XX:OnOutOfMemoryError = 执行一个脚本
在OOM时,执行一个脚本
官方推荐新生代栈3/8
幸存代1/10
-XX:PerSize 设置永久区大小
-XX:MaxPermSize 永久区最大

使用CGLIB等库的时候,可能会产生大量的类,这些类,有可能撑爆永久区导致OOM

-Xss 指定栈大小
通常几百K
决定函数调用的深度
每个线程都有独立的空间
局部变量、参数分配在栈上

-server 服务器模式运行-plan客户端模式启动,启动速度快