设为首页 收藏本站
查看: 294|回复: 0

[经验分享] eclipse 下调整jdk和tomcat的jvm参数

[复制链接]

尚未签到

发表于 2017-2-6 11:14:44 | 显示全部楼层 |阅读模式
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   

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

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

-Xms64m -Xmx128m

三、    修改Run Configurations (此方法可行)

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

-Xms64m -Xmx128m

四、    查询当前JVM 内存代码

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

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不够时就来一次。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-338259-1-1.html 上篇帖子: Tomcat 7 HTTP 连接器(二)标准实现 下篇帖子: tomcat启动提示server.xml的context节点中不支持source属性警告的解决方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表