- 浏览: 453610 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wjs876046992:
后来我下载了Eclipse Indigo版本,同样操作却成功了 ...
myeclipse2014中安装spket-1.6.23 -
wjs876046992:
我的是myEclipse2014,将那两个文件夹拷贝到drop ...
myeclipse2014中安装spket-1.6.23 -
lucky8060:
应该不是每次请求都产生一个action吧?应该是每个sessi ...
Struts2 action的单例与多例
1.参考:
http://blog.csdn.net/fox009/article/details/5633007
http://hi.baidu.com/like_dark/blog/item/19c1948b3292b0799f2fb468.html
http://anyeeye.iteye.com/blog/444624
Tomcat6性能调优 出现java.lang.OutOfMemoryError: PermGen space
http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/
2.报错:
Exception in thread "DispatcherThread" java.lang.OutOfMemoryError: PermGen space Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space Exception in thread "State Saver" java.lang.OutOfMemoryError: PermGen space Exception in thread "AWT-Windows" java.lang.OutOfMemoryError: OutOfMemoryError
3.原因:
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
4.解决方法1:
手动设置MaxPermSize大小,如果是linux系统,修改TOMCAT_HOME/bin/catalina.sh,如果是windows系统,修改TOMCAT_HOME/bin/catalina.bat,
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
5.解决方法2
修改eclipse.ini文件,修改如下:
如果还报错,可以考虑如下修改
报错:
2011-11-21 21:10:46 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 严重: The web application [/Application] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 2011-11-21 21:10:46 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 严重: The web application [/Application] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak. 2011-11-21 21:10:46 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 严重: The web application [/Application] appears to have started a thread named [AWT-Windows] but has failed to stop it. This is very likely to create a memory leak. 2011-11-21 21:10:46 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 严重: The web application [/Application] appears to have started a thread named [Thread-14] but has failed to stop it. This is very likely to create a memory leak. 2011-11-21 21:10:46 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap 严重: The web application [/Application] created a ThreadLocal with key of type [net.sf.json.AbstractJSON$1] (value [net.sf.json.AbstractJSON$1@3661eeb]) and a value of type [java.util.HashSet] (value [[]]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 2011-11-21 21:10:50 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring FrameworkServlet 'Dispatcher'
修改catalina.bat
添加
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
样例
# JSSE_HOME (Optional) May point at your Java Secure Sockets Extension # (JSSE) installation, whose JAR files will be added to the # system class path used to start Tomcat. # # CATALINA_PID (Optional) Path of the file which should contains the pid # of catalina startup java process, when start (fork) is used # # $Id: catalina.sh 609438 2008-01-06 22:14:28Z markt $ # ----------------------------------------------------------------------------- JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" # OS specific support. $var _must_ be set to either true or false. cygwin=false os400=false darwin=false case "`uname`" in CYGWIN*) cygwin=true;; OS400*) os400=true;; Darwin*) darwin=true;; esac # resolve links - $0 may be a softlink PRG="$0"
具体参数根据自己机器情况而定
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m
-Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"
发表评论
-
myeclipse远程调试web(tomcat)
2014-09-21 16:05 1299一、调试准备 首先得有一个在远程服务器上的Tomcat ... -
Eclipse下Svn的分支与合并指南
2014-09-18 14:00 811<!--[if gte vml 1]><v: ... -
myeclipse2014中安装spket-1.6.23
2014-09-18 10:25 6521spket支持JavaScript、XUL/XB ... -
java程序以及打成jar加载log4j.properties的方法
2014-06-10 11:34 1814这个方法可以防止jar运行时找不到配置文件 1、创建 ... -
两个tomcat同时运行,修改端口
2014-04-23 15:10 128351、第一个tomcat。使用tomcat默认的8080 ... -
Eclipse Juno(4.2.1)报 ambiguous 错误
2014-04-21 14:17 1439转自:http://www.jeecg.org/forum. ... -
MyEclipse中重命名项目名时的resource is out of sync with the file system问题解决!
2014-04-15 10:42 73951、重命名不同步问题 这是文件系统不同步的问题,是因 ... -
eclipse中禁用JS验证
2014-04-15 10:04 1640转自:http://blog.csdn.net/hao00z ... -
Description Resource Path Location Type Java compiler level does not match the v
2014-04-15 10:01 1326转自:http://blog.csdn.net/zwhfy ... -
使用plink代理服务器
2014-03-26 09:41 1872使用127.0.0.1的80端口,连接到192.168.18 ... -
eclipse使用git
2014-03-25 18:35 9181、安装elcipse的egit插件 help-i ... -
eclipse安装maven
2014-03-17 13:11 951时间:2014-3-17 环境:elcipse版本:ec ... -
设置tomcat虚拟主目录
2013-10-15 12:27 812去tomcat下头conf文件夹下的server.xml添加 ... -
SVN服务器创建及使用
2013-10-12 18:17 1300转自:http://blog.csdn.net/kupep ... -
myeclipse 出现 The method of type must override a superclass method解决方式
2013-09-10 10:27 1439转自:http://lovelydd.blog.51cto. ... -
将svnservice创建成服务
2013-08-16 15:35 922手动创建服务 :sc create 服务名 binpath ... -
从svn检出的项目不能在myeclipse中发布
2013-04-15 18:01 1328修改项目的.mymetadata文件 <?x ... -
MyEclipse 8.6 优化 与 SVN安装 []转自:Jack Web Develop]
2012-12-18 09:42 1073SVN的安装 方法一: 1.打开HELP->M ... -
eclipse 3.7 + subclipse1.8
2012-10-08 13:46 931Subclipse是eclipse的一个svn的插件,哄骗 ... -
SVN——TortoiseSVN安装使用
2012-10-08 14:12 1351TortoiseSVN是windows平台下Subversio ...
相关推荐
### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...
这种错误通常发生在永久代(PermGen space)内存不足的情况下,永久代主要用于存储类的信息、常量、静态变量以及方法信息等。本文将详细介绍这一问题的成因及解决方案。 #### 一、PermGen space简介 PermGen space...
总之,"java.lang.OutOfMemoryError: PermGen space"错误是由于Java虚拟机的 PermGen 区域内存不足造成的,可以通过增大 PermGen 区域的大小、升级JVM版本、优化类加载和库的使用等方式来解决。对于任何内存管理问题...
与普通对象的堆空间不同,PermGen Space主要负责存储类的结构信息,如类的方法、字段等,而这些信息是在类加载时创建并存储的。 #### 为何会出现PermGen Space的Out of Memory Error? 当应用程序加载了大量的类...
2. 使用了老版本的 cglib,导致 PermGen space 错误。 3. 使用了 log4j,导致 PermGen space 错误。 解决 Java heap space 问题: Java heap space 的设置是指 JVM 可以调配使用的内存空间的设置。JVM 在启动的...
解决 PermGen 空间溢出的方法是增加JVM内存的分配。可以通过设置以下JVM参数来实现: - `-Xms` 参数定义了JVM初始堆内存的大小,例如 `-Xms256m` 指定了初始堆内存为256MB。 - `-Xmx` 参数定义了JVM最大堆内存的...
Java内存不足PermGen space错误通常出现在Java程序运行过程中,尤其是当Java EE服务器(如Tomcat、JBoss等)加载WAR或EAR包时。这个错误的根本原因在于Java虚拟机(JVM)的永久代(Permanent Generation Space)内存...
解决OutOfMemoryError: PermGen space错误的关键在于理解PermGen空间的作用以及如何合理调整其大小。通过上述方法不仅可以解决当前的问题,还能提高应用程序的整体性能。此外,对于正在使用的开发工具和服务器环境,...
tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat
总的来说,遇到`OutOfMemoryError: PermGen space`问题时,首先要分析应用是否频繁加载大量类或使用大量库,然后通过增大 PermGen 区域的大小来解决。此外,升级到Java 8及以上版本也是一个有效的解决方案,因为这些...
本文将针对两种常见的Java内存溢出错误——`java.lang.OutOfMemoryError: PermGen space`和`java.lang.OutOfMemoryError: Java heap space`进行详细的分析和解决方案的探讨。 首先,我们来看`java.lang....
本文主要介绍了使用ssh实现Tomcat自动部署的方法,以及解决OutOfMemoryError PermGen space系统错误的方法。 一、配置Tomcat server.xml文件 在Tomcat的conf文件夹下找到server.xml文件,并添加以下代码:虚拟目录...
#### 三、PermGen Space 内存溢出的解决方法 1. **手动设置MaxPermSize大小** 为了防止PermGen Space内存溢出,可以通过调整JVM启动参数来手动设置PermGen Space的最大值。常用的命令行参数如下: ``` -Xms256...
#### 四、PermGen space 溢出的解决方法 1. **调整 PermGen space 的大小**: - 修改 Tomcat 的启动脚本 `catalina.bat` 或 `catalina.sh` 来调整 PermGen space 的初始大小和最大值。 - **Windows 环境**:在 `...
如果应用中有很多CLASS,可能会出现PermGen space错误。 解决方案: * 设置 PermSize 和 MaxPermSize:可以使用 JVM 选项 -XX:PermSize 和 -XX:MaxPermSize 来设置 PermGen space 的大小。 * 减少Class数量:在...
GC 不会在主程序运行期对 PermGen space 进行清理,所以如果应用中有很多 CLASS 的话,就很可能出现 PermGen space 错误。 解决 PermGen space 错误的方法: 1. 手动设置 MaxPermSize 大小。 2. 将相同的第三方 ...
解决`PermGen space`溢出的方法通常是增加该区域的内存分配。可以通过JVM的启动参数来设定,例如`-XX:PermSize`用来设置初始大小,`-XX:MaxPermSize`用来设置最大大小。在示例中,推荐的设置是`-XX:PermSize=64M -XX...