java.lang.OutOfMemoryError: PermGen space
PermGen space的全称是Permanent Generation space
是指内存的永久保存区域, 该区域被JVM用来存放Class和Meta信息, 该区域默认大小约是4M,并且JVM圾圾回收机不会在运行期对该区域进行清理.随着应用载入的class越来越多(这些class包括所有来自lib包中 引入的jar), 当该区域不够用时,将抛出PermGen space错误,这个时候就应该手动设置Perm Size的值, 如: JAVA_OPTS='-XX:PermSize=64m -XX:MaxPermSize=128m', 这个错误经常发生在应用启动时,如tomcat中运行过多应用,并且每个应用都包含相当多的lib包时,就可能发生该错误,因为每个应用lib包中的 class载入时都会占用该区域一定的内存,即使这些应用包含相同的jar,当这些jar中的class载入时仍可能占用不同的内存区域,所以调整 PermSize大小就是一个选择,另一个不错的办法就是将应用中相同的jar包移动到tomcat的lib目录中,这可以减少Perm区域的内存占用.

java.lang.OutOfMemoryError:Java heap space
JVM堆的内存区域,该区域是一个运行时数据区, 用于分配类的对象, 如我们new出来的实例对象.该区域可由运行时垃圾回收机清理,
JVM在启动的时候会自动设置Heap
size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。当我们在程序运行期间产生的实例对象越来越多,
而这些对象又没有得到及时清理时, 直到这些对象占据到接近-Xmx的设置值时就会抛出该错误. 
举个例子,如我们在web应用的session中保存了太多信息(session保存于服务器内存中),随着用户的增多,每个用户都分别占用着
一定的内存,当同时在线的用户增加到一定程度时,就可能抛出该内存溢出错误,
这个时候最直接的解决办法就是设置-Xmx的大小(一般建议-Xms与-Xmx设置一样大),另一个就是检查你的session中是否存放了太多不必要的
信息.
该错误还经常发生在很多后台线程中,为了处理一些大数据量的东西,我们经常会在系统中创建一些定时任务,这些定时任务可能会较长时间占据着系统的大量内
存,随着任务越来越多,这些线程就可能在不知不觉中引起内存溢出错误!
转自http://www.blogjava.net/huliqing/archive/2013/08/10/402665.html

《转》 java.lang.OutOfMemoryError - 关于java的内存溢出的更多相关文章

  1. java.lang.OutOfMemoryError 解决程序启动内存溢出问题

    java.lang.OutOfMemoryError: Java heap space Myeclipse里面部署的java web项目,浏览器访问的时候出现错误: type Exception re ...

  2. java.lang.OutOfMemoryError:PermGen space tomcat7 内存溢出

    Tomcat 解决 在启动项目的时候,会报java.lang.OutOfMemoryError:PermGen space错误. 在tomcat/bin/catalina.sh  windows li ...

  3. 【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便

    Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决 解决方案 在 catalin ...

  4. Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

    最近老是遇见服务器内存溢出的问题,故在网上搜了搜,总结了一些java内存溢出的解决方式 java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都 ...

  5. [转]Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

    原文地址: http://outofmemory.cn/c/java-outOfMemoryError java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生 ...

  6. Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式

    导致OutOfMemoryError异常的常见原因有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 代码中存在死循环 ...

  7. java.lang.OutOfMemoryError处理错误

    内存详解 原因: 常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码中存在死循环或循环产生过多 ...

  8. Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决

    解决方案 在 catalina.bat 里的 蓝色代码前加入: 红色代码 rem ----- Execute The Requested Command ----------------------- ...

  9. java.lang.OutOfMemoryError异常解决方法

    原因:常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据:2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收:3.代码中存在死循环或循环产生过多重复的对象实体:4 ...

随机推荐

  1. C#修饰符详解

    不定期更新,2017.8.9 一.new 别看new这个修饰符经常用,恐怕很多人都不知道其本质.我们先来看看new修饰符的官方定义: new 仅允许在嵌套类声明中使用,表明类中隐藏了由基类中继承而来的 ...

  2. javascript 函数的4种调用模式

    1. 函数模式 // this 指向 window 全局对象 2. 方法模式 // this 指向调用这个方法的对象 3. 构造函数模式 // this 指向 new 新创建出来的实例 4. 上下文模 ...

  3. Linux记录-普通用户下执行sudo xxx 找不到命令解决方案

    chmod 777 /etc/sudoers vim /etc/sudoers 1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径.这个指令指定当用户执行 ...

  4. round_robin 的几种取值

    ATS-6 的round_robin可以有4种算法可以选择 true Traffic Server goes through the parent cache list in a round robi ...

  5. 用贪心算法近似求解 Loading Balance 问题(作业调度的负载均衡)

    一,Loading Balance 问题描述:有 m 台相同的机器及 n 个作业,其中 m={M(1),M(2),……M(m)}.n = {J(1),J(2),……J(n)}.每个作业都有一个处理时间 ...

  6. EF crud操作

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. 数据库 之 E-R设计感想

    1.实体与实体之间的关系,在许多情况下,可以将其实体化为实体(弱实体),例如:员工租赁宿舍,可以将租赁弱实体化为实体(具有唯一主键ID) 2.一些具有特征的关系可以(弱)实体化为实体 3.实体里面可以 ...

  8. 第3月第1天 GCDAsyncSocket dispatch_source_set_event_handler runloop

    + (void)startCFStreamThreadIfNeeded { LogTrace(); static dispatch_once_t predicate; dispatch_once(&a ...

  9. IO流总结笔记三

    ​ 字节流: 抽象基类:InputStream, OutputStream. 字节流可以操作任何数据.注意:字符流使用的数组是字符数组.Char [] chs 字节流使用的数组是字节数组.Byte [ ...

  10. json转对象-对象转json

    我们经常会用到json,所以在c#里就会经常有对象or对象数组转json,json转对象or对象数组. ps:对象或者json可能是{}or[],也就是json属性or json数组形式,或者json ...