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 在Java应用程序运行过程中,可能会遇到“OutOfMemoryError: PermGen space”的错误提示。这种错误通常发生在永久代(PermGen space)内存不足的情况下,永久代主要用于...
### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...
内存溢出问题在Java开发中是一个常见的问题,尤其是在使用集成开发环境如MyEclipse时,由于资源消耗较大,可能会频繁出现。本文主要讨论如何解决MyEclipse中的内存溢出问题以及相关的Java内存管理知识点。 首先,...
### OutOfMemoryError: PermGen space 错误详解与解决方案 #### 一、问题背景及症状 在开发或运行基于Java的应用程序时,有时会遇到一个常见的错误提示:“OutOfMemoryError: PermGen space”。该错误通常发生在...
### Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决方案 在使用Myeclipse进行Java开发时,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这个错误提示。这种异常通常发生在应用程序占用...
对于myeclipse中OutOfMemoryError: PermGen space、 stackoverflow,以及background indexer crash recovery修改配置
比如,当看到类似`MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains`的警告时,可以判断是因为PermGen Space不足导致的问题。 此时,可以通过调整`-XX:PermSize...
2. **非堆内存(Non-heap)**:也被称为永久代(PermGen space),主要用于存储类元数据、常量池、静态变量等信息。非堆内存的大小同样可以在启动时通过-XX:PermSize和-XX:MaxPermSize参数来设置。 #### 三、...
在MyEclipse中,调整JVM的非堆内存(PermGen space)对于提高其运行速度至关重要。通过修改`myeclipse.ini`文件中的`-XX:MaxPermSize`和`-XX:PermSize`参数,可以有效地增加非堆内存的容量。这通常是因为MyEclipse的...
这通常表现为两种主要类型:Java堆空间溢出(Java heap space)和永久代空间溢出(PermGen space)。 ### Java堆空间溢出(Java heap space) Java堆是JVM管理的主要内存区域之一,用于存储所有对象实例以及数组。...
其中,`-XX:PermSize`和`-XX:MaxPermSize`用于设置永久代(PermGen space)的初始大小和最大大小。如果发现应用经常出现`OutOfMemoryError: PermGen space`错误,可以适当增加这两个值。但需要注意,`-XX:...
调整MyEclipse的启动参数,增大JVM的非堆内存(PermGen Space)可以避免内存溢出问题。在`myeclipse.ini`文件中,找到`-vmargs`行之后添加以下内容,根据实际需求调整内存大小: ``` -XX:MaxPermSize=512m ``` ...
永久代(PermGen space)主要用于存储类定义、常量池等数据。如果永久代空间不足,可能会导致频繁的垃圾回收甚至出现`OutOfMemoryError`。为了优化这一点,可以通过以下方式调整: - 将`-XX:MaxPermSize`的值调整为...
对于`PermGen space`错误,主要原因是永久代(PermGen space)内存不足。永久代主要用于存储类的信息、常量、静态变量等数据。当应用加载的类较多或者单个类占用的空间较大时,如果没有适当调整永久代的大小,就很...
最后,你还可以修改MyEclipse安装目录下的`eclipse.ini`文件,增加JVM的非堆内存( PermGen Space)和堆内存(Heap Size)。例如,添加或调整以下参数: `-XX:MaxPermSize=256m` `-Xms128m` `-Xmx512m` `-XX:...
这些参数用于设置Java虚拟机(JVM)的初始堆大小、最大堆大小以及永久代(PermGen space)的初始大小和最大值。通过适当调整这些参数,可以在保证应用正常运行的同时优化内存使用。 #### 三、总结 以上介绍了几种...
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的配置