1

我有一个有时需要大量内存的 java 应用程序。通常它会消耗 100-200 MB,但有时 1-2 分钟会消耗约 2 GB。

因为我必须支持这种情况,所以我将 xmX 设置为 2048。

问题是除非应用程序需要更多内存,否则 GC 不会释放此内存。服务器变得缓慢而沉重,我无法让这个应用程序释放内存。

我试图在那部分之后调用 System.gc() 没有成功。

是否有更多 VM 参数可以提供帮助?有没有办法强制GC运行?

谢谢!

4

1 回答 1

1

实际上,有些确实将内存归还给操作系统:SerialGC 和 G1GC。如果您使用吞吐量收集器或低暂停收集器,JVM 不会向操作系统释放任何内存。

您可以了解更多关于这篇文章的详细信息。

希望有帮助!

于 2013-05-26T17:31:39.863 回答