eclipse 下调整jdk和tomcat的jvm参数

eclipse 下调试和运行,每每会出现调整java.lang.OutOfMemoryError: Java heap space 

产生的缘由我猜想是使用了maven,subversion,mylar,wtp等插件,还有就是大文件,对象的操做致使,具体缘由还不肯定。

在网上找了找相关资料,找到了解决办法:方法(1)操做后没有起做用,不过能够参考其中查看内存的技巧 .具体解决看方法(2),(3)

一 、在eclipse根目录,找到eclipse.ini,在其中指定初始heap
size和最大heap size:
-xms 64M
-xmx
256M
其中, -xms是初始heap size, -xmx 是最大heap
size。

在实际使用过程当中,我发现我一启动eclipse时,heap
size使用大概是40m,多时能够达到128m,因此个人设置是
-xms
64m
-xmx 128m
对于permgen space:
在eclipse.ini中指定参数:
-permsize
256m
-maxpermsize
784m  
java

二 、修改jdk 使用内存(此方法可行) tomcat

找到eclispe 中window->preferences->Java->Installed JRE ,点击右侧的Edit
按钮,在编辑界面中的 “Default VM Arguments ”选项中,填入以下值便可。 eclipse

-Xms64m -Xmx128m maven

3、    修改Run Configurations (此方法可行) 测试

在代码上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments 参数中的“VM arguments:
”中填入以下值便可。 ui

-Xms64m -Xmx128m spa

4、    查询当前JVM 内存代码 插件

下面是查询当前JVM 内存大小的代码,能够测试以上设置后JVM 的内存是否会变化。增长JVM 内存的配置项后,无需从新启动eclipse
。具体的代码以下: debug

public class TestMemory {
    public static void main(String[] args) { 调试

       System. out .println( " 内存信息 :" + toMemoryInfo ());

    }

    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)" ;
   
}
}

也能够把工程发布成war包部署到存在管理控制台host-manager的tomcat下.进入控制台选择status查看内存的使用状况.

设置好了,实际运行的结果能够经过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。还有一个办法能够在eclipse中看到当前heap size的分配和使用状况,还能够强制执行垃圾回收。 在eclipse的快捷方式上点击右键,在目标栏添加参数: -debug options -vm javaw.exe 而后,在eclipse根目录下,新建一个名为options的文件,不要后缀名。在该文件中加入内容: org.eclipse.ui/perf/showHeapStatus=true 重启eclipse,就能够在eclipse的左下角看到当前heap size的使用状况和分配状况了,还能够手工执行垃圾回收,看heap size不够时就来一次。

相关文章
相关标签/搜索