jvm调优原理与调优方法

jvm内存模型

jvm调优原理与调优方法

 

jvm调优主要围绕堆内存调优

设置合理的栈内存;
设置合理的堆内存,最小内存和最大内存相等,减少内存的自动扩大和减小占用资源
设置新生代和老年代的比例
选择合理的垃圾收集器,-XX参数,
1、serial收集器新生代并行,老年代串行,使用在小项目;
2、ParNew是serial收集器多线程版本;
3、parallel停顿短,回收效率高,吞吐量高,适合大型应用,科学计算,大规模数据收集
4、cms收集器响应时间优先,减少垃圾收集停顿(大型服务器一般使用cms)
5、g1收集器在cms收集器上面改进的,最大的优点支持很大的堆,高吞吐量,支持多cpu(g1收集器使用最多)

 

一、栈内存溢出

错误:java.lang.*Error

原因:栈内存溢出产生于递归调用,循环遍历是不会的,但是循环方法里面产生递归调用,也会发生栈溢出。

解决办法:设置线程最大调用深度  -Xss 参数

二、堆内存溢出

错误:java.lang.OutOfMemoryError

原因:堆内存不够用

解决办法:设置堆内存足够大 -Xms8m  -Xmx8m