黑马程序员技术交流社区

标题: 内存:JVM参数关系Xms,Xmx和XX:MaxPermSize [打印本页]

作者: nuoxi0318    时间: 2013-7-27 07:16
标题: 内存:JVM参数关系Xms,Xmx和XX:MaxPermSize
本帖最后由 杨兴庭 于 2013-7-28 23:02 编辑

遇到个奇怪的问题:
一个比较大应用程序在跑一个比较大的操作的时候,在-Xmx768m时能顺利通过,但是-Xmx1024m的是会堆溢出...

能顺利运行完的参数
-Xms512m
-Xmx768m
-XX:MaxPermSize=256m

崩溃的参数
-Xms512m
-Xmx1024m
-XX:MaxPermSize=256m

请教这几个参数之间有什么关系?

崩溃时的控制台输出:
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 140 bytes for CHeapObj-new
# An error report file with more information is saved as:
# ...\hs_err_pid131404.log

作者: 李江    时间: 2013-7-27 09:31
-Xms   初始空间 默认为物理内存的1/64
-Xmx   最大空间 默认为物理内存的1/4   (建议最大不要超过可用物理内存的80%)
-Xmn   新增空间 默认为1/4的-Xmx值

貌似jvm内存与物理内存和操作系统有关系.....不懂,等高手吧。
作者: 黑马陈凯    时间: 2013-7-27 11:07
-Xms512m // JVM最小的内存启动
-Xmx1024m // JVM最大可得到的内存大小
-XX:MaxPermSize=256m // JVM运行是分配的最大永久性内存大小。不会被垃圾回收的内存。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2