yzkarchive 发表于 2013-03-27 16:36

请教一个java内存问题

-Xms4000m -Xmx4000m -XX:NewSize=1000M -XX:MaxNewSize=1000M

在这个内存分配语句中,NewSize的大小是包含在Xmx之中的还是另外从主机内存中分配的?

hello_ketty 发表于 2013-03-31 13:48

先说明一下各个参数的意思:
-Xms 表示jvm 运行时的初始化堆内存
-Xmx 表示堆内存的最大值
-XX:NewSize 初始新生代内存
-XX:MaxNewSize 新生代可扩展到的最大内存
java中的堆内存又分为:新生代、中生代、老生代三部分。
其存储顺序为:通过new方式新建的对象所占内存被分配到新生代中,当新生代内存被全部占用或将要被全部占用时,gc将清理新生代内存(具体何时执行gc取决于gc算法)。jvm将清理后的剩余的对象转移到中生代中。
由此可以看出NewSize的大小是包含在Xmx之中。
并且自jdk1.4版本以后我们可以通过一个参数-Xmn来同时设置-XX:NewSize 、-XX:MaxNewSize两个参数并且这两个参数的值是相同的且都等于-Xmn的值
页: [1]
查看完整版本: 请教一个java内存问题