当前位置:首页 > 内存 > 正文

内存溢出报什么异常(内存溢出异常)

  • 内存
  • 2024-05-21 22:05:34
  • 3303

一、java内存溢出Exceptioninthread"Thread-0"emoryError:Javaheapspace在中手动设置MaxPermSize。
4
在“echo"CATALINA_BASE:USING$CATALINA_BASE"上面添加以下行
:
//>5
JAVA_OPTS="-server-XX:PermSize=64M-XX:MaxPermSize=128m
6
7
/////8
9
解决方案二:
10
文件修改如下:
11
12
-
vmargs
13
edJavaVersion=1.5
14
-
Xms128m
15
-
Xmx512m
16
-XX:PermSize=
64m。仍然报错,可以考虑进行如下修改
20
21
-
vmargs
22
edJavaVersion=1.5
23
-
Xms512m
24
-
Xmx1024m
25
-XX:PermSize=
256M26
-XX:MaxPermSize=512M


二、java内存溢出的OutOfMemoryError异常

堆的最小值:-Xms如-Xms20m
堆的最大值-Xmx可以设置为相同,以避免堆自动扩展。
年轻代大小:-Xmn
-XX:+HeapDumpOnOutOfMemoryError:内存已满时丢弃当前内存堆转储快照。
Eclipse中虚拟机参数设置:debugAs-->opendubugdialog
生成后;使用EclipseMemoryAnalyzer分析堆转储文件(需要安装MAT插件)。-Xss:JDK1.5之后,默认为1M,在抛出StackOverFlow异常之前,此限制为256K:操作系统分配的内存仅限于每个参数。设备内存减去Xmx减去MaxPermSize;程序计数器占用的内存被忽略,剩余的内存在虚拟机堆栈和本地方法堆栈之间分配,因此分配给每个线程的堆栈量越大,它越小。分配的线程数。在正常情况下,如果节深度为1000-2000由于创建更多线程而导致内存溢出。如果线程数无法减少。唯一的办法就是用Xmx交换更多的线程并减少堆栈容量。。-PermSize:方法区初始容量;默认为物理内存的1/64
-MaxPermSize:最大方法区容量。-XX-MaxDirectMemorySize本机直接内存大小;如果没有指定,与Xmx相同