-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms1024m
-Xmx1024m
-Xmn364m
-XX:PermSize=512m
-XX:MaxPermSize=1024m
-XX:+UseParallelGC
-XX:+DisableExplicitGC
-XX:ReservedCodeCacheSize=64m
-Xss128K
获取当前JVM所有可设置的参数以及当前默认值: Java -XX:+PrintFlagsInitial >>1.txt
一、减少jvm内存回收引起的eclipse卡的问题
-Xmx512m 最大总堆内存,一般设置为物理内存的1/4
-Xms512m 初始总堆内存,一般将它设置的和最大堆内存一样大,不需要根据当前堆使用情况而调整堆的大小
-Xmn192m 年轻带堆内存,sun官方推荐为整个堆的3/8
-XX:PermSize=128m 持久带堆的初始大小
-XX:MaxPermSize=128m 持久带堆的最大大小,eclipse默认为256m。如果要编译jdk,要设的很大,因为类太多
-XX:+UseParallelGC 使用并发内存回收
-XX:+DisableExplicitGC 禁用System.gc()的显示内存回收
-XX:ReservedCodeCacheSize=64m 缓存
-Xss128K 调整Stack Space的大小,Stack Space的大小不会受到-Xmx和-Xms的影响;一般默认的大小是512K,在64位的系统中Stack Space更大。一般说来,Stack Space为128K是够用的。你的程序没有StackOverflow的错误
堆内存的组成总堆内存 = 年轻带堆内存 + 年老带堆内存 + 持久带堆内存
年轻带堆内存: 对象刚创建出来时放在这里
年老带堆内存: 对象在被真正会回收之前会先放在这里
持久带堆内存: class文件,元数据等放在这里
eclipse --->> help --->> about Eclipse --->> Installation Details --->> configuration
二、eclipse中设置JVM内存
1.在代码上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments 参数中的“VM arguments: ”中填入如下值即可。
-Xms64m -Xmx128m
三、查询当前JVM 内存代码
具体的代码如下:
public class TestMemory {
/**
* @param args
*/
public static void main(String[] args) {
System. out .println( " 内存信息 :" + toMemoryInfo ());
}
/**
* 获取当前 jvm 的内存信息
*
* @return
*/
public static String toMemoryInfo() {
Runtime currRuntime = Runtime.getRuntime ();
int nFreeMemory = ( int ) (currRuntime.freeMemory() / 1024 / 1024);
int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);
return nFreeMemory + "M/" + nTotalMemory + "M(free/total)" ;
}
}
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms1024m
-Xmx1024m
-Xmn364m
-XX:PermSize=512m
-XX:MaxPermSize=1024m
-XX:+UseParallelGC
-XX:+DisableExplicitGC
-XX:ReservedCodeCacheSize=64m
-Xss128K
获取当前JVM所有可设置的参数以及当前默认值: Java -XX:+PrintFlagsInitial >>1.txt
一、减少jvm内存回收引起的eclipse卡的问题
-Xmx512m 最大总堆内存,一般设置为物理内存的1/4
-Xms512m 初始总堆内存,一般将它设置的和最大堆内存一样大,不需要根据当前堆使用情况而调整堆的大小
-Xmn192m 年轻带堆内存,sun官方推荐为整个堆的3/8
-XX:PermSize=128m 持久带堆的初始大小
-XX:MaxPermSize=128m 持久带堆的最大大小,eclipse默认为256m。如果要编译jdk,要设的很大,因为类太多
-XX:+UseParallelGC 使用并发内存回收
-XX:+DisableExplicitGC 禁用System.gc()的显示内存回收
-XX:ReservedCodeCacheSize=64m 缓存
-Xss128K 调整Stack Space的大小,Stack Space的大小不会受到-Xmx和-Xms的影响;一般默认的大小是512K,在64位的系统中Stack Space更大。一般说来,Stack Space为128K是够用的。你的程序没有StackOverflow的错误
堆内存的组成总堆内存 = 年轻带堆内存 + 年老带堆内存 + 持久带堆内存
年轻带堆内存: 对象刚创建出来时放在这里
年老带堆内存: 对象在被真正会回收之前会先放在这里
持久带堆内存: class文件,元数据等放在这里
eclipse --->> help --->> about Eclipse --->> Installation Details --->> configuration
二、eclipse中设置JVM内存
1.在代码上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments 参数中的“VM arguments: ”中填入如下值即可。
-Xms64m -Xmx128m
三、查询当前JVM 内存代码
具体的代码如下:
public class TestMemory {
/**
* @param args
*/
public static void main(String[] args) {
System. out .println( " 内存信息 :" + toMemoryInfo ());
}
/**
* 获取当前 jvm 的内存信息
*
* @return
*/
public static String toMemoryInfo() {
Runtime currRuntime = Runtime.getRuntime ();
int nFreeMemory = ( int ) (currRuntime.freeMemory() / 1024 / 1024);
int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);
return nFreeMemory + "M/" + nTotalMemory + "M(free/total)" ;
}
}