I read in this excellent answer that the HotSpot JVM does release memory back to the OS, but does so reluctantly.
What does "reluctantly" mean in this context? That is, other than setting:
- -XX:GCTimeRatio=19
- -XX:MinHeapFreeRatio=20
- -XX:MaxHeapFreeRatio=30
- -XX:InitiatingHeapOccupancyPercent=10
to make GC "more aggressive", how does GC actually decide when to release back to the OS instead of keeping it for reuse by the same process?