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

myeclipse PermGen space

 
阅读更多
myEclipse 设置
-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m


JVM的配置,最常用的两个配置就是:
-Xms512m

–Xmx1024m

-Xms设置JVM的初始化内存大小,-Xmx为最大内存大小,当突破这个值,将会报内存溢出,导致的原因有很多,主要是虚拟机的回收问题以及程序设计上的内

存泄露问题;由于在超过-Xms时会产生页面申请的开销,所以一般很多应用服务器会推荐-Xms和-Xmx是等值的;最大值一般不保持在主机内存的75%的内存

左右(多个SERVER是加起来的内存),当JVM绝大部分时间处于回收状态,并且内存长时间处于非常长少的状态就会报:java.lang.OutOfMemoryError:Java

heap space的错误。


JVM内存配置分两大类:

1、-X开头的参数信息:一般每个版本变化不大。

2、-XX开头的参数信息:版本升级变化较大,如果没有太大必要保持默认即可

3、另外还有一个特殊的选项就是-server还是-client,他们在默认配置内存上有一些细微的区别,直接用JDK运行程序默认是-client,应用服务器生产模式一般

只会用-server。


1、-X开头的常用配置信息:

-Xnoclassgc 禁用垃圾回收,一般不适用这个参数

-Xincgc 启用增量垃圾回收

-Xmn1024K Eden区初始化JAVA堆的尺寸,默认值640K

-Xms512m JAVA堆初始化尺寸,默认是32M

-Xmx512m JAVA堆最大尺寸,默认64M,一般不超过2G,在64位机上,使用64位的JVM,需要操作系统进行unlimited方可设置到2G以上。

2、-XX开头常用内存配置信息:

-XX:-DisableExplicitGC 忽略手动调用GC的代码,如:System.gc(),将-DisableExplicitGC, 改成+DisableExplicitGC即为启用,默认为启用

-XX:+UseParallelGC 启用并行回收,多CPU有效,默认是不启用。

-XX:+UseParNewGC 启用并行收集(不是回收),也是多CPU有效。

-XX:NewSize=128m 新域的初始化尺寸。

-XX:MaxNewSize=128m 新创建的对象都是在Eden中,在-client中默认为640K,而-server中默认是2M

-XX:PerSize=64m 设置永久域的初始化大小,在WEBLOGIC中默认的尺寸应该是48M,一般够用,可以根据实际情况作相应条调整

-XX:MaxPerSize=64m 设置永久域的最大尺寸

另外还可以设置按照区域的比例进行设置操作,以及设置线程、缓存、页面大小等等操作。

3、-XX开头的几个监控信息:
-XX:+GITime 显示有多少时间花在编译代码代码上,这部分为运行时编译为对应机器码时间

-XX:+PrintGC 打印垃圾回收的基本信息

-XX:+PrintGCTimeStamps 打印垃圾回收时间戳信息

-XX:+PrintGCDetails 打印垃圾回收的详细信息

-XX:+TraceClassLoading 跟踪类的加载

-XX:+TraceClassResolution 跟踪常量池

-XX:+TraceClassUnLoading 跟踪类卸载




1、修改启动时内存参数、并指定JVM时区 (在Windows Server 2008 下时间少了8个小时):

在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:

Windows下, 在catalina.bat最前面:
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m;-Duser.timezone=GMT+08;
一定加在catalina.bat最前面。

Linux下,在catalina.sh最前面增加:

JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"

注意:前后二者区别,有无set,有无双引号。


set JAVA_OPTS=-XX:PermSize=128M -XX:MaxPermSize=256m -Xms512m -Xmx1024m;

catalina.sh
JAVA_OPTS="-XX:PermSize=128M -XX:MaxPermSize=256m -Xms512m -Xmx1024m"


-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME;-Xms512m -Xmx1024m

rem ---------------------------------------------------------------------------
rem Start script for the CATALINA Server
rem ---------------------------------------------------------------------------

#set JAVA_HOME=C:\s\Java\jdk1.7.0_80
set JAVA_HOME=C:\s\Java\jdk1.8.0_101
set JRE_HOME=C:\s\Java\jdk1.8.0_101\jre
#set JRE_HOME=C:\s\Java\jdk1.7.0_80\jre
分享到:
评论

相关推荐

    解决OutOfMemoryError: PermGen space

    ### 解决OutOfMemoryError: PermGen space 在Java应用程序运行过程中,可能会遇到“OutOfMemoryError: PermGen space”的错误提示。这种错误通常发生在永久代(PermGen space)内存不足的情况下,永久代主要用于...

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

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

    myeclipse内存溢出问题解决方案

    内存溢出问题在Java开发中是一个常见的问题,尤其是在使用集成开发环境如MyEclipse时,由于资源消耗较大,可能会频繁出现。本文主要讨论如何解决MyEclipse中的内存溢出问题以及相关的Java内存管理知识点。 首先,...

    OutOfMemoryError-PermGen-space-的解决方案亲测有效

    ### OutOfMemoryError: PermGen space 错误详解与解决方案 #### 一、问题背景及症状 在开发或运行基于Java的应用程序时,有时会遇到一个常见的错误提示:“OutOfMemoryError: PermGen space”。该错误通常发生在...

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

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

    myeclipse OutOfMemory

    对于myeclipse中OutOfMemoryError: PermGen space、 stackoverflow,以及background indexer crash recovery修改配置

    Eclipse的内存优化与内存不足问题.pdf

    比如,当看到类似`MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains`的警告时,可以判断是因为PermGen Space不足导致的问题。 此时,可以通过调整`-XX:PermSize...

    myeclipse内存溢出问题

    2. **非堆内存(Non-heap)**:也被称为永久代(PermGen space),主要用于存储类元数据、常量池、静态变量等信息。非堆内存的大小同样可以在启动时通过-XX:PermSize和-XX:MaxPermSize参数来设置。 #### 三、...

    myeclipse 8.5运行慢的解决方案

    在MyEclipse中,调整JVM的非堆内存(PermGen space)对于提高其运行速度至关重要。通过修改`myeclipse.ini`文件中的`-XX:MaxPermSize`和`-XX:PermSize`参数,可以有效地增加非堆内存的容量。这通常是因为MyEclipse的...

    tomcat out of memory solution

    这通常表现为两种主要类型:Java堆空间溢出(Java heap space)和永久代空间溢出(PermGen space)。 ### Java堆空间溢出(Java heap space) Java堆是JVM管理的主要内存区域之一,用于存储所有对象实例以及数组。...

    myeclipse提速+java环境变量配置

    其中,`-XX:PermSize`和`-XX:MaxPermSize`用于设置永久代(PermGen space)的初始大小和最大大小。如果发现应用经常出现`OutOfMemoryError: PermGen space`错误,可以适当增加这两个值。但需要注意,`-XX:...

    MyEclipse7.5的优化

    调整MyEclipse的启动参数,增大JVM的非堆内存(PermGen Space)可以避免内存溢出问题。在`myeclipse.ini`文件中,找到`-vmargs`行之后添加以下内容,根据实际需求调整内存大小: ``` -XX:MaxPermSize=512m ``` ...

    Myeclipse优化方法

    永久代(PermGen space)主要用于存储类定义、常量池等数据。如果永久代空间不足,可能会导致频繁的垃圾回收甚至出现`OutOfMemoryError`。为了优化这一点,可以通过以下方式调整: - 将`-XX:MaxPermSize`的值调整为...

    tomcat_eclipse配置内存溢出

    对于`PermGen space`错误,主要原因是永久代(PermGen space)内存不足。永久代主要用于存储类的信息、常量、静态变量等数据。当应用加载的类较多或者单个类占用的空间较大时,如果没有适当调整永久代的大小,就很...

    MyEclipse优化秘籍

    最后,你还可以修改MyEclipse安装目录下的`eclipse.ini`文件,增加JVM的非堆内存( PermGen Space)和堆内存(Heap Size)。例如,添加或调整以下参数: `-XX:MaxPermSize=256m` `-Xms128m` `-Xmx512m` `-XX:...

    myeclipse 优化

    这些参数用于设置Java虚拟机(JVM)的初始堆大小、最大堆大小以及永久代(PermGen space)的初始大小和最大值。通过适当调整这些参数,可以在保证应用正常运行的同时优化内存使用。 #### 三、总结 以上介绍了几种...

    OutOfMemoryError Handbook

    OutOfMemoryError的8种经典案例,Java heap space、GC overhead limit exceeded、Permgen space、Metaspace、Unable to create new native thread、Out of swap space?、Requested array size exceeds VM limit、...

    内存溢出配置

    针对内存溢出 myeclipse中的配置以及tomcat的配置

Global site tag (gtag.js) - Google Analytics