JVM调优
来源:互联网 发布:python np.split函数 编辑:程序博客网 时间:2024/06/14 23:23
代大小调优
最关键参数:-Xms、 -Xmx 、-Xmn 、-XX:SurvivorRatio、-XX:MaxTenuringThreshold、-XX:PermSize、-XX:MaxPermSize
-Xms、 -Xmx 通常设置为相同的值,避免运行时要不断扩展JVM内存,这个值决定了JVM heap所能使用的最大内存。
-Xmn 决定了新生代空间的大小,新生代Eden、S0、S1三个区域的比率可以通过-XX:SurvivorRatio来控制(假如值为 4 表示:Eden:S0:S1 = 4:3:3 )
-XX:MaxTenuringThreshold 控制对象在经过多少次minor GC之后进入老年代,此参数只有在Serial 串行GC时有效。
-XX:PermSize、-XX:MaxPermSize 用来控制方法区的大小,通常设置为相同的值。
1.避免新生代大小设置过小
当新生代设置过小时,会产生两种比较明显的现象,一是minor GC次数频繁,二是可能导致 minor GC对象直接进入老年代。当老年代内存不足时,会触发Full GC。
2.避免新生代大小设置过大
新生代设置过大,会带来两个问题:一是老年大变小,可能导致Full GC频繁执行;二是 minor GC 执行回收的时间大幅度增加。
3.避免Survivor区过大或过小
-XX:SurvivorRatio参数的值越大,就意味着Eden区域变大,minor GC次数会降低,但两块Survivor区域变小,如果超过Survivor区域内存大小的对象在minor GC后仍没被回收,则会直接进入老年代,
-XX:SurvivorRatio参数值设置过小,就意味着Eden区域变小,minor GC触发次数会增加,Survivor区域变大,意味着可以存储更多在minor GC后任存活的对象,避免其进入老年代。
4.合理设置对象在新生代存活的周期
新生代存活周期的值决定了新生代对象在经过多少次Minor GC后进入老年代。因此这个值要根据自己的应用来调优,Jvm参数上这个值对应的为-XX:MaxTenuringThreshold,默认值为15次。
- JVM调优
- JVM调优
- JVM调优
- JVM调优
- JVM 调优
- JVM调优
- JVM调优
- JVM调优
- jvm调优
- JVM调优
- JVM调优
- JVM调优
- jvm调优
- JVM调优
- JVM调优
- JVM调优
- JVM调优
- JVM调优
- 计算内存空间
- Notification使用详解之四:由后台服务向Activity发送进度信息
- hibernate中的session.flush()和commit()的区别
- 第10课:Spark Streaming源码解读之流数据不断接收全生命周期彻底研究和思考
- hdu 5246(贪心)
- JVM调优
- Oracle创建表空间和用户名
- HDU3635 Dragon Balls(并查集)
- 通过过滤黑名单案例对SparkStreaming 透彻理解
- ibatis中iterate的用法(conjunction="or" ",") .
- hdu 2550百步穿杨
- AVL树建立 删除 最详细 最通俗易懂的代码 加图文解析!!!
- Namespace 介绍
- python中的 os.mkdir和os.mkdirs