启动内存溢出的解决

来源:互联网 发布:大数据 管理平台 编辑:程序博客网 时间:2024/05/22 01:38

若是在eclipse内部启动tomcat,报内存太小或内存溢出,可以在eclipse中进行jvm内存设置。

window->preferences->java->installedjres

选择JDK的版本edit:default vm arguments

填写: -Xms256m –Xmx1024m

注意:这个参数可根据本机的内存大小进行调整。


 

若是在外部tomcat启动,报内存太小或内存溢出,请进行tomcat内存设置。

D:\java\Tomcat\bin 里的catalina.bat文件

rem ----- Execute The Requested Command –下 加入

set JAVA_OPTS= -Xms256m -Xmx1024m



default vm arguments的解释

-Xms:是初始分配的堆内存
-Xmx:是最大的分配的堆内存
超出了xms的大小,JVM会向系统继续要内存,如果一直扩展到Xmx都不够的话,这是就抛出OOM了。
-XX:PermSize:是默认永生代大小,永生代主要用来加载类和常量池,这部分很难GC。JDK8的Hotspot已经取消了永生代,改为元空间,元空间不需要指定大小,会自动扩展。
-XX:MaxPermSize:是永生代大小上限。
-XX:MaxNewSize:是新生代大小,一般新出生的对象都是在这里的Eden区,在这里GC之后会进去新生代的Survivor区(有两块Survivor区,用的是标记复制算法)。GC后对象还存活就进入了旧时代(不一定是一次)。
-Djava.endorsed.dirs:由于classloader的父类继承模式,你不能伪装JDK的类,但是你可以通过此配置替换JDK中的部分类,不包括lang包中的类。

剩下的都是tomcat一些配置,catalina.home(安装目录),catalina.base(工作目录)。


原创粉丝点击