gpt4 book ai didi

java - Eclipse 释放堆回到系统

转载 作者:IT王子 更新时间:2023-10-29 00:49:54 28 4
gpt4 key购买 nike

我在 Linux(64 位)上使用 Eclipse 3.6 和最新的 Sun Java 6 处理大量大型项目。在某些特殊情况下(例如 SVN 更新)Eclipse 需要最多 1 GB 的堆。但大多数时候它只需要 350 MB。当我启用堆状态面板时,大多数时候我都会看到:

878M 中的 350M

我使用这些设置启动 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 时,内存实际上被释放回操作系统。

关于java - Eclipse 释放堆回到系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3776041/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com