Java(JDK)13新特性之ZGC: Uncommit Unused Memory
GC后的内存如何处置其实取决于不同的垃圾回收器的,因为把内存还给OS,意味着要调整JVM的堆大小,这个过程是比较消耗资源的.
在JDK11中,引入了ZGC这是一款可伸缩的低延迟垃圾收集器,但是当时只是实验性的,并且ZGC释放的内存是不会还给操作系统的.
而java 13中再次对ZGC进行了增强,本次ZGC可以将未使用的堆内存返回给操作系统,之所以引入这个特性,是因为如今有很多场景中内存是比较宝贵的资源,在以下情况下,将内存还给操作系统还是很有必要的:
1:那些需要根据使用量付费的容器
2:应用程序可能长时间处于空闲状态并与许多其他应用程序共享或竞争资源的环境
3:应用程序在执行的期间可能有非常不同的堆空间需求,例如:启动期间所需的堆可能大于稍后再稳定状态执行期间所需要的堆