搜索
写经验 领红包
 > 财经

生产事故:JVM一定会将内存归还给操作系统吗?不一定

导语:生产事故:JVM一定会将内存归还给操作系统吗?不一定

生产事故:JVM一定会将内存归还给操作系统吗?不一定

大家平时理所当然会认为:

Java程序在短时间内处理大量任务时会申请使用大量的内存空间,而等任务处理完毕(或者是请求的任务变少时),会有大量的内存被虚拟机回收回来,回收回来的内存由于短期内不再被使用,所以虚拟机会将内存归还给操作系统。

事实上呢?

Heap Configuration

MinHeapFreeRatio = 40

空闲堆空间的最小百分比,计算公式为:HeapFreeRatio =(CurrentFreeHeapSize/CurrentTotalHeapSize) * 100,值的区间为0到100,默认值为 40。

如果HeapFreeRatio < MinHeapFreeRatio,则需要进行堆扩容,扩容的时机应该在每次垃圾回收之后。

MaxHeapFreeRatio = 70

空闲堆空间的最大百分比,计算公式为:HeapFreeRatio =(CurrentFreeHeapSize/CurrentTotalHeapSize) * 100,值的区间为0到100,默认值为 70。

如果HeapFreeRatio > MaxHeapFreeRatio,则需要进行堆缩容,缩容的时机应该在每次垃圾回收之后。

生产事故:JVM一定会将内存归还给操作系统吗?不一定