您的位置:首页 > 其它

关于一个CS项目,jvm内存溢出问题的解决方案

2014-09-23 13:59 351 查看
发生场景以及原因:

在跑程序的时候,因为程序内的converter对象较多,数据量较大,所以造成了跑程序的时候jvm内存溢出。

解决方式:
1、设置jvm内存大小 -Xmx
1500m

将虚拟机内存调整为1.5g

再次运行程序,内存依然溢出

2、去掉一些无用对象加载,优化了代码,并在一些内部变量的大对象加载的方法结束部加上System.gc();

希望能让gc回收掉一些不用的对象

再次运行程序,内存溢出

调整后溢出原因:System.gc();只是为jvm做个提示,告诉jvm内存堆之中的无用对象该回收,可是gc的回收机制是有一定时限的,并非调用该语句System.gc();就能立刻回收掉垃圾对象,所以 依然造成内存溢出

3、最后写了对象创建的动态代理

将一些大对象的创建方式改为若引用

然后调用gc。

再次运行程序 OK;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: