现象如下:
Tomcat7启动后,后台抛出如下异常,前台一直无法登陆
Exception in thread ""http-bio-8080"-exec-6" java.lang.OutOfMemoryError: PermGen space
Exception in thread ""http-bio-8080"-exec-9" java.lang.OutOfMemoryError: PermGen space
Exception in thread "schedulerFactory_Worker-3" java.lang.OutOfMemoryError: PermGen space
Exception in thread ""http-bio-8080"-exec-2" java.lang.OutOfMemoryError: PermGen space
Exception in thread "Timer-0" java.lang.OutOfMemoryError: PermGen space
解决方案:
给tomcat指定的jdk加大启动的内存参数
-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m
如下图:
参数介绍:(http://apps.hi.baidu.com/share/detail/32453201)
堆(Heap)和非堆(Non-heap)内存
按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。
堆内存分配
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
JVM内存限制(最大值)
首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。
- 大小: 59.2 KB
分享到:
相关推荐
### MyEclipse-Tomcat JDK 内存溢出问题及解决方案 #### 一、问题概述 在使用MyEclipse进行Java Web开发时,经常会遇到Tomcat服务器启动后出现JVM内存溢出的问题。这种情况通常表现为应用程序运行过程中突然崩溃,...
MyEclipse 8.6生成器可以随机生成MyEclipse 8.6注册所需的注册码,大家再也不用到网上无聊的搜索了,自己生成自己用。
提供MyEclipse8.6 破解以及注册码
标题提到的问题,“解决myeclipse8.6 启动缓慢”,是许多开发者可能遇到的常见问题。MyEclipse是一款功能强大的集成开发环境(IDE),尤其在Java EE应用开发中广泛使用。然而,随着项目规模的扩大和插件的增多,启动...
2. **启动 MyEclipse**:安装完成后,启动 MyEclipse 8.6。 3. **寻找激活选项**:在首次启动时,系统会提示用户激活产品。如果错过了这一步骤,可以在“Help”菜单下找到“Activate Product”选项。 4. **输入...
在探讨“myeclipse 8.6 注册码”这一主题时,首先需要明确的是,MyEclipse是一款非常受欢迎的集成开发环境(Integrated Development Environment,IDE),尤其适用于Java开发人员。它不仅支持Java开发,还提供了对...
它对内存管理和启动速度进行了优化,使得大型项目开发时也能保持良好的运行状态。同时,它支持热部署,允许开发者在不重启服务器的情况下更新代码,提高了开发效率。 总的来说,MyEclipse 8.6作为一款强大的Java...
本文将详细介绍如何在Myeclipse 8.6上安装SVN插件及其步骤。 首先,我们需要了解Myeclipse 8.6的基本信息。Myeclipse是一款由Genuitec公司开发的商业级Java集成开发环境,它基于Eclipse平台,提供了丰富的功能,...
2. **启动软件**:打开 MyEclipse 软件后,在欢迎界面上会有一个“Activate”或“Register”的选项。 3. **输入注册码**:点击相应的选项后,会弹出一个对话框让用户输入注册码。将上述提供的注册码按照格式正确输入...
MyEclipse 8.6 for spring (Linux 64bt) MyEclipse 8.6 for spring (windos) MyEclipse 8.6 blue(Linux 64bt) MyEclipse 8.6 blue(windows) MyEclipse 8.6(Linux 64bt) MyEclipse 8.6(windows) 以上都为...
本文主要讨论如何解决MyEclipse中的内存溢出问题以及相关的Java内存管理知识点。 首先,解决内存溢出问题的关键在于调整JVM的内存配置。在MyEclipse中,可以通过以下路径进行设置:Window > Preferences > ...
"Myeclipse8.6汉化语言包及教程"这个标题明确指出了我们要讨论的主题,即针对MyEclipse 8.6版本的一个汉化解决方案。MyEclipse是一款基于Eclipse平台的集成开发环境(IDE),主要用于Java、Web、J2EE等项目的开发。...
【MyEclipse8.6简易汉化】是一个针对MyEclipse 8.6版本的简体中文语言包,主要用于改善用户界面的语言环境,使得中国用户在使用MyEclipse时能够更加方便地理解和操作。MyEclipse是一款强大的集成开发环境(IDE),...
Myeclipse8.6注册方法,:将此段代码运行,即可以生成Myeclipse8.6注册码
总的来说,MyEclipse 8.6的汉化教程帮助我们解决了语言障碍,使开发工作更加流畅。正确安装和使用汉化包,可以提升开发效率,让开发者更好地专注于编程本身。在遇到问题时,可以通过搜索相关论坛或社区寻求解决方案...
《MyEclipse 8.6 汉化包详解及使用指南》 MyEclipse 8.6 是一款强大的Java集成开发环境,以其丰富的功能和对多种技术的支持深受程序员喜爱。然而,对于非英语背景的开发者来说,英文界面可能会造成一定的困扰。为此...
MyEclipse 8.5 8.6 注册机 key MyEclipse 8.5 8.6 注册机 key MyEclipse 8.5 8.6 注册机 key MyEclipse 8.5 8.6 注册机 key MyEclipse 8.5 8.6 注册机 key MyEclipse 8.5 8.6 注册机 key MyEclipse 8.5 8.6 注册机 ...
7. **性能优化**:相比标准Eclipse,MyEclipse在启动速度和内存使用上进行了优化,提升开发体验。 8. **支持最新技术**:在8.6版本中,MyEclipse支持当时最新的Java、Spring、Struts等技术框架。 在下载MyEclipse ...
配置完成后,启动Tomcat,如果MyEclipse没有报错并且能在浏览器中访问到Tomcat的默认欢迎页面,那么恭喜你,Tomcat7.0已经在MyEclipse8.6中成功配置。 最后,对于引入Tomcat7的jar包,如果你的项目需要直接引用...