当不再需要JVM时,JVM是否会将可用内存还给操作系统?

我有一个应用程序对于某些进程暂时需要一定数量的内存/堆。如果可以选择给JVM一个最大堆大小的合理值,那么JVM将从一个小的堆开始,并按需向OS请求更多的内存。

我的问题是,当我的应用程序不再需要大量内存时,JVM是否会将额外的内存还给操作系统(例如,用于其他进程)。目前,即使不再需要,我的应用程序似乎也可以永久保留该内存。

回答:

JVM确实将内存返回给操作系统,但是非常不情愿,因为它可能很快会再次需要它,并且从操作系统获取内存是一个相对昂贵的操作。

如果您希望JVM更热切地将内存返回给操作系统,则可以使用Oracle

JVM的调整参数,特别是-XX:MaxHeapFreeRatio-XX:MinHeapFreeRatio

以上是 当不再需要JVM时,JVM是否会将可用内存还给操作系统? 的全部内容, 来源链接: utcz.com/qa/421410.html

回到顶部