这可能是一个新手提出的不太正确的问题,但我希望你能提供帮助。
我想知道是否可以估计 Java 将如何增加堆,以保持 -XX:MinHeapFreeRation=40
(默认值)百分比的堆可用?
更具体:
如果我的堆已分配/占用 300 MB,则意味着 JVM 必须始终保持 40%*300 = 120 MB 空闲。假设我有内存泄漏,并且 GC 在这种情况下没有帮助。那么,当我的可用堆空间有下降到 120 MB 以下的危险时,Java 将增加多少量的堆分配内存? 20MB、40MB?我想这取决于系统和系统的当前状态。但假设我的应用程序是唯一正在运行的应用程序。
有人可以帮忙吗?谢谢。
最佳答案
我认为堆增长的大小是特定于实现的。但是您始终可以使用 XX:MaxPermSize 参数来限制堆可以增长的大小。
关于java - 你能估计一下 Java 会增加多少堆吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7065346/