JVM优化

JVM调优时,常用的参数:

1、-Xms:最小堆值     -Xmx:最大堆值 (两个参数设置为一样可避免堆自动扩展);

2、-XX:+HeapDumpOnOutOfMemoryError:让虚拟机在出现内存溢出异常时Dump出当前的内存堆转存快照;

     -XX:+PrintGCDetials:打印内存回收日志,在进程退出时输出当前内存各区域分配情况;

3、-Xss:栈内存容量;

4、-XX:PermSize:方法区大小   -XX:MaxPermSize:最大方法区大小;

5、-XX:MaxDirectMemorySize:最大本机直接内存;

6、-Xms20M  -Xmx20M  -Xmn10M:Java堆固定为20M,不可扩展,其中10M分配给新生代u,剩下的分给老年代;-XX:SurvivorRatio=8决定了新生代Eden区与一个Survivor区的空间比例是8:1;

7、-XX:PretenureSizeThreadhold:大于这个设置值的对象直接在老年代分配(只对Serial和ParNew收集器有效);

8、-XX:MaxTenuringThreadhoid:对象晋升老年代的年龄阈值


JVM调优时,使用的JDK命令行工具:

1、javac:编译Java程序

2、java:运行Java程序

3、jps:虚拟机进程状况工具(-q:输出本地虚拟机唯一id     -l:输出主类全名)

4、jstat:虚拟机统计信息监视工具(-gc:监视Java堆状况,包括Eden区、两个survivor区、老年代、永久代;)

5、jinfo:Java配置信息工具(-flag:查看系统参数默认值)

6、jmap:Java内存映像工具,-dump用于生成堆转储快照

7、jhat:虚拟机堆转储快照分析工具,一般不用

8、jstack:Java堆栈跟踪工具,用于生成虚拟机当前时刻的线程快照


JVM调优时,使用的JDK可视化工具:

1、JConsole

2、VisualVM

你可能感兴趣的:(JVM优化)