遇到个奇怪的问题:
一个比较大应用程序在跑一个比较大的操作的时候,在-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
一个比较大应用程序在跑一个比较大的操作的时候,在-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
时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会
出现内存溢出的错误.
如果是64位操作系统建议安装64位JDK
-Xmx1024m // JVM最大可得到的内存大小
-XX:MaxPermSize=256m // JVM运行是分配的最大永久性内存大小。不会被垃圾回收的内存。