「JVM基础」——垃圾回收基础(GC相关)

「JVM基础」——垃圾回收基础(GC相关),第1张

内存中的某一个对象无法找到任何引用的时候,这个对象就是一个垃圾对象。

内存泄露(memory leak),是指程序中已动态分配的堆内存由于某种原因程序未将其释放或无法释放,造成了内存的浪费,导致程序运行速度减慢甚至程序崩溃等严重后果。

STW即stop the world ,指的是JVM进行GC时会暂停所有业务线程。

给每一个对象添加一个引用计数器,t每当有新的引用时,计数器+1,引用结束后计数器-1。任何时刻计数器为0的对象都是不被引用的。

优点:

1 引用计数算法在回收垃圾时具有实时性。当一个对象的引用为0的时候会被直接回收,无需等待特定时间就可以释放内存。

缺点:

1当出现对象之间循环引用的时候,垃圾回收期无法确定这些对象是否是垃圾,因此无法回收循环引用的对象。(内存泄漏)

从GC Roots节点(起始节点)出发向下搜索,如果没有任何引用链(既GC root不可达),则证明此对象不可用

tracing GC的本质是通过找出所有活对象来把其余空间认定为“无用”,而不是找出所有死掉的对象并回收它们占用的空间。GC roots这组引用是tracing GC的起点。要实现语义正确的tracing GC,就必须要能完整枚举出所有的GC roots,否则就可能会漏扫描应该存活的对象,导致GC错误回收了这些被漏扫的活对象。

将需要清除的对象标记出来,清除掉。

标记清除算法的实现分为两个阶段:

优点:

只对存活的对象进行标记。标记完毕后再扫描整个空间中未被标记的对象进行回收。该算法不需要进行对象的移动,只需对不存活的对象进行处理,效率高。

缺点

因为直接回收掉了不存活对象,未对内存进行整理,因此会产生内存碎片。内存碎片较多时,当大对象进入内存空间,无法为期分配足够的内存会提前触发GC。

将内存一分为二,每次使用一个区域。当触发gc时,将存活对象复制到另一区域,清除原区域。

它开始时把堆分成 一个对象 面和多个空闲面, 程序从对象面为对象分配空间,当对象满了,基于copying算法的垃圾 收集就从根集合(GC Roots)中扫描活动对象,并将每个 活动对象复制到空闲面(使得活动对象所占的内存之间没有空闲洞),这样空闲面变成了对象面,原来的对象面变成了空闲面,程序会在新的对象面中分配内存。

优点

缺点:

标记清除算法的优化实现,清除垃圾对象的同时压缩空间。

该算法标记阶段和Mark-Sweep一样,但是在完成标记之后,它不是直接清理可回收对象,而是将存活对象都向一端移动,然后再清理掉无用对象

优点:

1因为对空间进行了整理,因此不会产生内存碎片。

缺点

1因为扫描了两次,并且在清除的基础上还增加了整理,因此时间成本高。

您好,要引起GC,首先要了解GC是什么。GC(垃圾回收)是一种自动内存管理机制,它可以自动清理不再使用的内存,以便释放出可用的内存空间。GC的主要目的是提高程序的性能,减少内存泄漏,提高程序的可靠性。

要引起GC,可以通过以下几种方式:

1 内存分配:如果程序中的内存分配量过大,就会触发GC,以释放不再使用的内存空间。

2 内存占用:如果程序中的内存占用量过大,就会触发GC,以释放不再使用的内存空间。

3 内存泄漏:如果程序中存在内存泄漏,就会触发GC,以释放不再使用的内存空间。

4 程序运行时间:如果程序运行时间较长,就会触发GC,以释放不再使用的内存空间。

5 程序暂停:如果程序暂停,就会触发GC,以释放不再使用的内存空间。

总之,GC的触发机制主要是内存分配量、内存占用量、内存泄漏、程序运行时间和程序暂停等。只要程序中出现以上情况,就会触发GC,以释放不再使用的内存空间。

1 可以。

2 GC(Garbage Collection,垃圾回收)是Java等编程语言中的一种自动内存管理机制,对于内存中无用的对象等进行自动删除和回收。

一般情况下,在程序空闲状态下,GC会进行垃圾回收,但是当程序需要执行某些 *** 作时,也会触发GC来回收内存。

因此,GC在程序运行和待机状态之间切换是可以的。

3 但是,过于频繁的GC切换会降低程序的性能,因此需要合理地设置GC策略来避免频繁切换。

以上就是关于「JVM基础」——垃圾回收基础(GC相关)全部的内容,包括:「JVM基础」——垃圾回收基础(GC相关)、查询如何引起gc、gc刚待机又运行可以吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9755644.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存