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. BootStrap的表格加载json数据,并且可以搜索,选择

    2018.4.11日更新,8号的时候我推荐去官网下载,但是那个版本不知道为什么我无法使用 $table.bootstrapTable('getSelections'); 无论如何...然后我尝试着更换 ...

  2. 修改placeholder样式

    /* 修改placeholder样式,兼容性 新版火狐,IE10+ */ .login-input::-webkit-input-placeholder { color: #000; font-siz ...

  3. CM记录-选择合适的硬件

    hadoop的运行环境---hadoop/jvm/os/hw 原则1:主节点的可靠性要好于从节点:NameNode(Yarn-ResourceManager).DataNode(NodeManager ...

  4. google Guava包的ListenableFuture解析

     一. ListenableFuture是用来增强Future的功能的. 我们知道Future表示一个异步计算任务,当任务完成时可以得到计算结果.如果我们希望一旦计算完成就拿到结果展示给用户或者做另外 ...

  5. Neural Networks and Deep Learning(week4)Building your Deep Neural Network: Step by Step

    Building your Deep Neural Network: Step by Step 你将使用下面函数来构建一个深层神经网络来实现图像分类. 使用像relu这的非线性单元来改进你的模型 构建 ...

  6. Guava Immutable 不可变集合

    Immutable是为了创建不可变集合使用,不可变集合在很多情况下能提高系统性能.一般使用 .of()或者.builder()<>().put().build()初始化创建不可变集合

  7. Elaticsearch 集群

    elasticsearch开源的搜索引擎:  ElasticSearch 个基于Lucene的搜索服务器:可以使用多节点的备份:集群设置: (类似是个数据库型.有索引有什么的).(lucene apa ...

  8. Java SE关键字-static

    一. static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员 ...

  9. luogu P1437 [HNOI2004]尻♂砖块

    传送门 想明白了其实不难 强行瞎扯 这题的限制比较烦,导致了一行行转移几乎不能做(吧) 那么一列列转移呢? 设\(f_{i,j,k}\)表示前\(i\)列,取\(j\)个,其中第\(i\)列取从上往下 ...

  10. 第16月底18天 phpstudy设置

    1.phpstudy设置-端口常规设置 E:\phpStudy\Apache\bin>httpd.exeAH00526: Syntax error on line 14 of E:/phpStu ...