当前位置:编程学习 > JAVA >>

内存:JVM参数关系Xms,Xmx和XX:MaxPermSize

遇到个奇怪的问题:
一个比较大应用程序在跑一个比较大的操作的时候,在-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 --------------------编程问答-------------------- 32位系统好像只能设置900左右。 --------------------编程问答-------------------- 线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时 
时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会 
出现内存溢出的错误. 
如果是64位操作系统建议安装64位JDK
--------------------编程问答-------------------- -Xms512m // JVM最小的内存启动
-Xmx1024m // JVM最大可得到的内存大小
-XX:MaxPermSize=256m // JVM运行是分配的最大永久性内存大小。不会被垃圾回收的内存。
--------------------编程问答-------------------- 了解一下。。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,