`
accpxudajian
  • 浏览: 461131 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

eclipse内存溢出处理办法

    博客分类:
  • Java
阅读更多

"java.lang.OutOfMemoryError:Java PermGen space " ,oh my god!

"java.lang.OutOfMemoryError: Java heap space"    oh my god angin! 

今天就彻底干掉内存溢出的问题。

 

方法一:修改tomcat配置:

 TOMCAT_HOME/bin/catalina.bat(Linux上为catalina.sh)文件,在

echo Using CATALINA_BASE:上面加入这一行内容:(4G内存为例)

set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=512m -XX:MaxPermSize=1024m

参考地址:http://woo-program.iteye.com/blog/1243613 (实际验证过)

 

方法二:修改ECLIPSE配置

 

更改ECLIPSE文件夹下的ECLIPSE.INI文件内容如下:
-vmargs
-Xms128m
-Xmx512m
-XX:PermSize=64m
-XX:PermSize=128m

或者:

在eclipse目录下建个批处理文件eclipse.bat,用文本编辑器打开,写入如下内容:
eclipse.exe -vmargs -Xms128m -Xmx512m -XX:PermSize=128m -XX:PermSize=256m

然后保存.以后运行eclipse的时候就执行这个批处理就行了.
解释下参数的意思:
-vmargs                                   说明后面的参数都是java虚拟机(vm)的参数
-Xms128m                               虚拟机占用系统的最小内存
-Xmx512m                               虚拟机占用系统的最大内存
-XX:PermSize=64m               最小堆大小.一般报内存不足时,都是说这个太小,堆空间剩余小于5%就会警告,建议把这个稍微设大一点,不过要视自己机器内存大小来设置
-XX:PermSize=128m             最大堆大小.这个也适当边大些

 或者:

修改启动Eclipse的快捷方式为:

D:\javaDevelop\eclipse\eclipse.exe -vmargs -Xms128m -Xmx512m -XX:PermSize=128m -XX:PermSize=256m

 

以上摘自:http://blog.sina.com.cn/s/blog_4c17eecb01000ako.html

 

自我实战:

找到tomcat的VM arguments(Preferences>Tomat>JVM Settings),然后粘贴:

-Xms256m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m(推荐)

--   Xms和XX:PermSize 表示初始化大小,Xmx和MaxPermSize表示最大值,占用内存会从初始化开始递增,直到最大值,然后报内存溢出。

-- 默认为:

后来我改成:

-Xms256m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=1024m,

报错,tomcat无法启动,应该是设置的内存超出了我本机的内存(本机2G),然后我改成了了:

-XX:PermSize=256m -XX:MaxPermSize=1024m

启动tomcat,正常了。

 

 

 

以下摘自:http://it.100xuexi.com/view/otdetail/20120517/4f4f95b4-682c-4c7b-9417-fb88afbb6190.html

 
 

 

-XX:PermSize 应用服务器启动时,永久存储区的初始内存大
-XX:MaxPermSize 应用运行中,永久存储区的极限值。
为了不消耗扩大JVM 永久存储区分配的开销,将此参数和-XX:PermSize这个两个值设为相等。堆空间相关参数参数名参数说明
-Xms 启动应用时,JVM 堆空间的初始大小值。
-Xmx 应用运行中,JVM 堆空间的极限值。
为了不消耗扩大JVM 堆控件分配的开销,将此参数和-Xms 这个两个值设为相等,考虑到需要开线程,讲此值设置为总内存的80%.
-Xmn 此参数硬性规定堆空间的新生代空间大小,推荐设为堆空间大小的1/4。
上面所列的JVM 参数关系到系统的性能,而其中-XX:PermSize,
 
-XX:MaxPermSize,-Xms,-Xmx 和-Xmn 这5 个参数更是直接关系到系统的性能,系统是否会出现内存溢出。
-XX:PermSize 和-XX:MaxPermSize 分别设置应用服务器启动时,永久存储区的初始大小和极限大小;在生成环境中强烈推荐将这个两个值设置为相同的值,以避免分配永久存储区的开销,具体的值可取系统“疲劳测试”获取到的永久存储区的极限值;如果不进行设置-XX:MaxPermSize 默认值为64M,一般来说系统的类定义文件大小都会超过这个默认值。
 
-Xms 和-Xmx 分别是服务器启动时,堆空间的初始大小和极限值。-Xms的默认值是物理内存的1/64 但小于1G,-Xmx 的默认值是物理内存的1/4 但小于1G.在生产环境中这些默认值是肯定不能满足我们的需要的。也就是你的服务器有8g 的内存,不对JVM 参数进行设置优化,应用服务器启动时还是按默认值来分配和约束JVM 对内存资源的使用,不会充分的利用所有的内存资源。
 
结论:
“永久存储区溢出(java.lang.OutOfMemoryError:Java Permanent Space)”乃是永久存储区设置太小,不能满足系统需要的大小,此时只需要调整-XX:PermSize 和-XX:MaxPermSize 这两个参数即可。
“JVM 堆空间溢出(java.lang.OutOfMemoryError: Java heap space)”错误是JVM 堆空间不足,此时只需要调整-Xms 和-Xmx 这两个参数即可。
 
到此我们知道了,当系统出现内存溢出时,是哪些参数设置不合理需要调整

 

 

4G内存推荐配置:

 -Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m

 

 

 

 

分享到:
评论

相关推荐

    eclipse内存溢出的解决办法.txt

    本文将详细介绍Eclipse内存溢出的原因及具体的解决办法。 #### 一、内存溢出的基本概念 在Java应用中,“内存溢出”通常指的是Java虚拟机(JVM)在运行过程中,因为可用内存空间不足而引发的一种错误。这种错误...

    eclipse 内存溢出解决办法

    ### Eclipse 内存溢出解决办法详解 #### 一、PermGen Space 概念与问题成因 在Java虚拟机(JVM)中,PermGen Space(Permanent Generation Space)是专门用于存储Class和Meta信息的一个区域。当一个Class被加载到...

    eclipse内存溢出处理

    本文将深入解析Eclipse内存溢出的原因、表现形式以及如何通过调整JVM参数来有效解决此问题。 ### 一、内存溢出的基本概念 内存溢出是指程序运行时,申请的内存超过了系统所能分配的最大内存空间,导致程序无法继续...

    eclipse解决内存溢出的问题

    在了解如何解决内存溢出之前,我们先来了解一下导致Eclipse内存溢出的原因: 1. **项目规模过大**:当项目的代码量和资源文件非常多时,Eclipse需要消耗更多的内存来加载这些文件。 2. **缓存和临时文件积累**:...

    eclipse内存溢出报错-解决办法

    然而,在使用过程中,用户可能会遇到“eclipse内存溢出报错”的问题,这一现象通常表现为Java.lang.OutOfMemoryError: Java heap space错误,这主要源于Eclipse运行时分配给Java虚拟机(JVM)的内存不足,导致程序...

    eclipse内配置处理内存溢出

    ### Eclipse内配置处理内存溢出 #### 背景与问题概述 在使用Eclipse进行Java开发时,可能会遇到应用程序运行过程中出现“OutOfMemoryError”(内存溢出错误)。这类错误通常发生在Java虚拟机(JVM)无法为新对象...

    Eclipse内存溢出

    ### Eclipse内存溢出问题解析与解决方案 #### 一、内存溢出概述 内存溢出(Memory Leak)是指程序运行过程中使用的内存超过系统所能提供的最大内存限制时所出现的问题。这种情况通常发生在Java等需要进行垃圾回收...

    eclipse内存溢出

    eclipse开发中,如果导入的jar包过多,很容易出现内存溢出

    Eclipse运行工程内存溢出解决方法

    解决Eclipse内存溢出问题的步骤如下: 1. 找到Eclipse的启动配置文件,通常是`eclipse.ini`,位于Eclipse安装目录下。 2. 在`eclipse.ini`文件中,找到`-vmargs`行,接着在其下方添加内存参数。按照你的工程需求,...

    tomcat_eclipse配置内存溢出

    ### Tomcat与Eclipse配置内存溢出解决方案 #### 背景介绍 在进行Web应用程序开发过程中,尤其是在使用Tomcat服务器结合Eclipse或MyEclipse等集成开发环境(IDE)时,开发者可能会遇到一个常见的问题——内存溢出。...

    eclipse tomcat启动,内存溢出问题

    ### Eclipse Tomcat 启动时出现内存溢出问题解析及解决方法 #### 一、问题背景与概述 在使用Eclipse集成开发环境部署并运行基于Tomcat的应用程序时,经常会出现“java.lang.OutOfMemoryError: Java heap space”这...

    一次使用Eclipse Memory Analyzer分析Tomcat内存溢出

    #### 二、内存溢出的原因及处理思路 ##### 2.1 内存泄露 - **定义**:内存泄露是指不再使用的对象仍然占据内存空间,且无法通过垃圾回收机制释放,导致可用内存逐渐减少直至耗尽。 - **识别**:通过 MAT 工具的 `...

    Eclipse + Tomcat 内存溢出参数设置

    ### Eclipse + Tomcat 内存溢出参数设置详解 在Java开发过程中,特别是在使用Eclipse作为集成开发环境(IDE)并结合Apache Tomcat服务器进行Web应用开发时,经常会遇到内存溢出的问题。这类问题通常表现为应用程序...

    maven内存溢出解决放啊

    对于使用Eclipse IDE并安装了m2eclipse插件的用户来说,可以通过IDE内部配置来解决内存溢出问题。具体步骤如下: 1. **创建新配置**:在项目上右键点击,选择“Run As” -> “Run Configurations”,然后在“Maven ...

    java excel导出tomcat内存溢出处理方法

    ### Java Excel导出Tomcat内存溢出处理方法 在Java应用开发过程中,特别是在进行大量数据处理如Excel导出等操作时,经常会遇到Tomcat服务器内存溢出的问题。内存溢出是指程序运行时申请的内存超过了系统能提供的...

    myeclipse内存溢出问题解决方案

    同时,堆内存大小不应超过物理内存的80%,以确保系统有足够的资源处理其他进程。 总结来说,解决MyEclipse内存溢出问题需要理解Java内存模型和JVM参数设置,合理分配堆内存、新生代和永久代的大小。通过监控和调整...

    eclipse 内存不足的问题

    为了有效解决Eclipse内存不足的问题,可以通过修改Eclipse的启动参数来增加分配给JVM的内存大小。具体操作步骤如下: 1. **定位Eclipse.ini文件**:首先找到Eclipse的安装目录下的`eclipse.ini`文件。这个文件控制...

    eclipse设置 java内存

    Eclipse是一个功能强大且广泛使用的集成开发环境(IDE),但是,如果不正确地设置其运行内存,可能会导致内存溢出错误。因此,正确地设置Eclipse的java内存是非常重要的。本文将详细介绍如何设置Eclipse的java内存,...

    eclipse(wtp)内存溢出相关配置文件

    eclipse(wtp)内存溢出解决办法 修改配置文件

Global site tag (gtag.js) - Google Analytics