Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个有时需要大量内存的 java 应用程序。通常它会消耗 100-200 MB,但有时 1-2 分钟会消耗约 2 GB。
因为我必须支持这种情况,所以我将 xmX 设置为 2048。
问题是除非应用程序需要更多内存,否则 GC 不会释放此内存。服务器变得缓慢而沉重,我无法让这个应用程序释放内存。
我试图在那部分之后调用 System.gc() 没有成功。
是否有更多 VM 参数可以提供帮助?有没有办法强制GC运行?
谢谢!
实际上,有些确实将内存归还给操作系统:SerialGC 和 G1GC。如果您使用吞吐量收集器或低暂停收集器,JVM 不会向操作系统释放任何内存。
您可以了解更多关于这篇文章的详细信息。
希望有帮助!