JAVA-OPTS思考
来源:互联网 发布:红警for mac 编辑:程序博客网 时间:2024/06/05 01:16
常见的JAVA-OPTS的配置项。
JAVA_OPTS=”-server -Xms1536m -Xmx1536m -XX:NewSize=320m -XX:MaxNewSize=320m -XX:PermSize=96m -XX:MaxPermSize=256m -Xmn500m -XX:MaxTenuringThreshold=5″
-Xms:设置堆内存池的最小值
-Xmx:设置堆内存池的最大值
-XX:NewSize:设置新对象生产堆内存
-XX:MaxNewSize:设置最大新对象生产堆内存
-XX:PermSize:设置Perm区的大小
XX:MaxPermSize:设置Perm区的最大值
-Xmn:设置Young区的大小
-XX:MaxTenuringThreshold:设置垃圾最大年龄。
更加详细的说明,请参考图1
图1
看到这里,或许你会迷糊什么是堆内存,什么Perm区?这样就引出了第二个思考:JAVA内存模型。
JAVA内存模型如图2所示。
图2
JAVA的内存模型可以分为3个代:Young、Tenured、Perm。有的版本又叫:New、Old、Perm。中文叫:年轻代、终生代、永久代。或许中文还有其他的叫法,但是表示的意思是一样的。
Young和Tenured共同组成了堆内存(heap)。
Young(年轻代)还可以分为Eden区和两个Survivor区(from和to,这两个Survivor区大小严格一至)。新的对象实例总是首先放在Eden区,Survivor区作为Eden区和 Tenured(终生代)的缓冲,可以向 Tenure(终生代)转移活动的对象实例。如图3所示。
图3
在明白了JAVA内存模型后,就引出了第三个思考:Jconsole在性能测试中的使用。Jconsole是我们在性能测试中常用的工具,打开Jconsole后,可以看到很多监控图表。当你明白JAVA内存模型后,也就很容易明白Jconsole的监控图表了。如图4所示。
图4
在Jconsole图中,我们可以很明显看到内存可以分为堆内存和非堆在堆内存。在堆的上面有三个柱子,分别代别的是:Eden、Survivor、Old。Old区就是Tenured区。
在了解上述知识后,我们在使用Jconsole来监控应用的内存时,会更加清晰。
记于2011.9.23 黯風夜隱
- JAVA-OPTS思考
- JAVA-OPTS引发的思考
- java opts基本参数设置
- MyEclipse内存不足之JVM内存浅谈 JAVA-OPTS引发的思考
- Hadoop 参数 mapred.map.child.java.opts
- mapreduce.{map|reduce}.java.opts vs. mapreduce.{map|reduce}.memory.mb
- java 思考
- static struct option opts[] =
- JAVA集合框架思考
- 2 Java思考问题
- java学习思考
- JAVA学习方法的思考
- java精度思考(1)
- java多线程的思考
- Java多线程的思考
- Java main方法思考
- java编码思考
- Java中的String思考。
- 非常简洁高效的JS右键菜单
- D3D-lines(+D3DFVF_XYZ和D3DFVF_XYZRHW的区别)
- 文章搬家成功
- 如何在Drupal当中实现工作流?
- 异步通知fasync
- JAVA-OPTS思考
- js右键菜单
- C语言修饰符和限定符
- BMP转JPG(法二)RGB数据经过YUV交织
- UML类图设计
- SecureCRT 工具 上传下载数据 与 ASCII、Xmodem、Ymodem 、Zmodem 说明
- Linux下编译选项记录
- Lucene Field 1.*版本和2.*版本比较
- web.xml 通过contextConfigLocation配spring 的方式