加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Eclipse将堆释放回系统

发布时间:2020-12-15 05:16:54 所属栏目:Java 来源:网络整理
导读:我正在使用 Eclipse 3.6和 Linux(64位)上的最新Sun Java 6以及大量项目.在某些特殊情况下(例如SVN更新),Eclipse需要最多1 GB的堆.但大多数时候它只需要350 MB.当我启用堆状态面板时,我大部分时间都会看到这个: 350M的878M 我使用以下设置启动Eclipse:-Xms1
我正在使用 Eclipse 3.6和 Linux(64位)上的最新Sun Java 6以及大量项目.在某些特殊情况下(例如SVN更新),Eclipse需要最多1 GB的堆.但大多数时候它只需要350 MB.当我启用堆状态面板时,我大部分时间都会看到这个:

350M的878M

我使用以下设置启动Eclipse:-Xms128m -Xmx1024m

因此,大多数时候MB的大量浪费只是在内存使用达到峰值时很少使用.我根本不喜欢它,我希望Eclipse将内存释放回系统,所以我可以将它用于其他程序.

当Eclipse需要更多内存而没有足够的可用RAM而Linux可以换掉其他正在运行的程序时,我可以忍受.我听说有一个-XX:MaxHeapFreeRatio选项.但我从来没有弄清楚我必须使用什么价值,所以它有效.没有任何价值我试过有所作为.

那么我如何告诉Eclipse(或Java)发布未使用的堆?

解决方法

找到了解决方案.我将Java切换为使用G1垃圾收集器,现在HeapFreeRatio参数按预期工作.所以我在eclipse.ini中使用这些选项:

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:MinHeapFreeRatio=5
-XX:MaxHeapFreeRatio=25

现在,当Eclipse为一项复杂的操作耗尽超过1 GB的RAM并在垃圾收集后切换回300 MB时,内存实际上会释放回操作系统.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读