`
lonelythinker
  • 浏览: 28734 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

Javarebel启动程序java.lang.OutOfMemoryError: PermGen space问题的解决

阅读更多

在一个SSH2项目中,使用Javarebel启动程序.由于项目越做越大,终于在启动时报错:

Exception in thread "btpool0-1" java.lang.OutOfMemoryError: PermGen space ...


以前在使用MyEclipse时,经常遇到PermGen space问题,解决办法无非是更改MyEclipse的配置文件,增加其运行

JVM时申请的内存.但是这次是由Javarebel启动程序...


在网上搜了半天也没有太好的解决办法,整个项目组因为这个问题开发进度几乎停滞了两个星期...倒是很有几个帖子写得很深入,值得研究,待以后发帖总结.言归正传,看来也许大家没有解决这个问题?于是想到了Javarebel的官网:http://www.zeroturnaround.com找到
FAQ :http://www.zeroturnaround.com/jrebel/faq,搜索"PermGen space",找到:



 哈哈,果然有"同道中人"!点击该链接:


大致意思估计不用金山词霸也能看个七八成.于是照此修改Javarebel的参数:

-Xmx512M -Xms512M -XX:MaxPermSize=1024m

 

问题解决!

 

从网上搜得:http://hi.baidu.com/futily/blog/item/cffb330fb0c22ee4ab6457fc.html很值得阅读.

 

简单作个笔记:

 

堆内存分配:

-Xms     JVM初始分配的内存由-Xms指定,默认是物理内存的1/64

-Xmx    JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4;

默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。

因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。

 

 非堆内存分配

-XX:PermSize       JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64

-XX:MaxPermSize  XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4

 

注意:

参数中

        -Xms的值要小于-Xmx

        -XX:PermSize的值要小于-XX:MaxPermSize
        -Xmx的值和-XX:MaxPermSize的总和应不超过JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。

  • 大小: 15.8 KB
  • 大小: 19.5 KB
1
0
分享到:
评论

相关推荐

    java.lang.OutOfMemoryError: PermGen space解决方案

    java.lang.OutOfMemoryError: PermGen space 解决方案

    Caused by: java.lang.OutOfMemoryError: PermGen space解决方案

    在Java应用程序运行过程中,"java.lang.OutOfMemoryError: PermGen space"错误是常见的一个问题,尤其是在使用Tomcat这样的Java应用服务器时。这个错误表明应用程序在 PermGen 区域(Permanent Generation)耗尽了...

    java.lang.OutOfMemoryError: PermGen space及其解决方法

    ### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...

    Eclipse中通过Tomcat运行J2EE项目java.lang.OutOfMemoryError PermGen space的解决方案

    Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的解决方案 在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于...

    java.lang.OutOfMemoryError: PermGen space

    在Java编程中,我们常常会遇到一个让人头疼的问题,那就是“java.lang.OutOfMemoryError: PermGen space”错误。这个错误提示表明,应用程序在运行过程中,内存的永久代(Permanent Generation)空间不足,导致了...

    Tomcat给我的java.lang.OutOfMemoryError: PermGen

    本文将针对两种常见的Java内存溢出错误——`java.lang.OutOfMemoryError: PermGen space`和`java.lang.OutOfMemoryError: Java heap space`进行详细的分析和解决方案的探讨。 首先,我们来看`java.lang....

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    ### Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决方案 在使用Myeclipse进行Java开发时,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这个错误提示。这种异常通常发生在应用程序占用...

    java.lang.OutOfMemoryError解决办法

    当应用程序加载大量类或者使用了大量的静态变量和常量时,PermGen space可能会耗尽,从而引发`java.lang.OutOfMemoryError: PermGen space`错误。对于频繁部署或重载JSP的Web应用,如Tomcat,这个问题尤为常见。 ...

    java解决nested exception is java.lang.OutOfMemoryError Java heap space

    4. **调整PermGen空间**:在Java 8之前, PermGen 区域用于存储类的元数据,如果这个区域耗尽,会出现`java.lang.OutOfMemoryError: PermGen space`错误。在Java 8中,这部分被MetaSpace取代,可通过`-XX:...

    java.lang.OutOfMemoryError处理错误

    在Tomcat中java.lang.OutOfMemoryError: PermGen space异常处理: 1. PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的。 2. Class在被Loader...

    Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException)

    5. **增大PermGen或Metaspace大小**:如果你看到 `OutOfMemoryError: PermGen space` 或 `Metaspace`,这是方法区溢出,可以通过 `-XX:MaxPermSize` (对于老版本JVM) 或 `-XX:MaxMetaspaceSize` (对于Java 8及以后...

    完美解决java.lang.OutOfMemoryError处理错误的问题

    - **解决方法**:Java 8之后,PermGen被Metaspace取代,处理方式类似。可以增加 Metaspace 的大小(`-XX:MaxMetaspaceSize`),或者限制加载的类数量,避免频繁加载新类。 在针对`OutofMemoryError`进行故障排查时...

    OutOfMemoryError_8种典型案例分享

    java.lang.OutOfMemoryError是Java开发者在工作中经常会遇到的一个内存错误。该错误通常发生在JVM无法为新对象分配足够的堆内存时。由于内存问题导致的程序崩溃给开发和维护带来了极大的挑战,而解决这类问题需要对...

    内存不足OOM java.lang.OutOfMemoryError.

    Java中的“内存不足OOM (Out Of Memory):java.lang.OutOfMemoryError”是一个常见的运行时错误,它表示Java虚拟机(JVM)在尝试分配新的对象或数据结构时,发现系统内存不足以完成此操作。这个问题通常发生在程序...

    java内存溢出原因

    - **错误日志**:`java.lang.OutOfMemoryError: PermGen space` - **原因**:默认的PermGen大小有限,如果加载的类数量过多,超过了这个限制,就会发生溢出。 - **解决方案**:可以通过设置JVM启动参数增大Perm...

    Tomcat–Java.Lang.OutOfMemoryE

    标题 "Tomcat–Java.Lang.OutOfMemoryError" 指的是在使用Apache Tomcat服务器运行Java应用程序时出现的一种常见错误,即“Java.lang.OutOfMemoryError”,特别是涉及到“PermGen Space”区域的问题。 PermGen...

    系统稳定性——OutOfMemoryError常见原因及解决方法1

    当Java应用程序尝试分配新的对象,但堆内存(Heap Space)不足以容纳这些对象时,就会抛出`java.lang.OutOfMemoryError: Java heap space`。此错误可能由以下几个原因引起: - 创建超大数据结构,如大数组。 - ...

Global site tag (gtag.js) - Google Analytics