垃圾收集器(GC)仅收集对象还是覆盖它存储的数据?

问题描述 投票:0回答:1

热点的垃圾收集器(GC)

HotSpot的垃圾收集器(GC)运行时,它仅收集对象还是覆盖存储的数据以防止内存转储?


GC在释放内存时也会在内存中重写以避免数据转储

java memory garbage-collection jvm hotspot
1个回答
0
投票

这是一个相当广泛的问题,因为GC有很多不同的算法。

以热点和G1为例。

小型GC将对象从伊甸园空间复制到幸存者空间之间的幸存者空间,并将其提升为老一代(取决于对象年龄)。在所有这些情况下,这些对象使用的内存将随后被覆盖,但不会被释放。

大型GC将对象从一个区域(这是内存的逻辑区域)复制到另一个区域以压缩对象,从而消除了碎片。同样,这些对象使用的内存将在将来的某个时候被覆盖。

当堆使用量减少并且不再需要所有分配的页面时,像Azul的Zing这样的收集器(我为之工作)会放弃未使用的内存。但是,并非所有GC都这样做。这会将内存页面返回到操作系统,以允许它们用于其他应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.