15.GC时候的引用计数算法和根搜索算法(用于标示GC)

原创 2016年06月01日 10:34:25

虽然GC有助于程序运行,但GC对程序本身而言是无用的,会消耗资源。

1.GC时的计数引用

对象一旦被使用或者引用,计数器会进行+1和-1操作,当为0时被标示为垃圾。此种标示方法的弊端在于已经死亡的对象如果存在相互引用,则会一直占用内存空间,不被回收。此时会导致内存泄漏。为了解决这个问题出现了根搜索算法。

2.GC的根搜索算法

所有的内存存活对象组成一个tree.包括stack中引用的对象,常量池对象引用,class对象引用,静态对象引用。

根搜索算法的详细介绍,后面介绍。

相关文章推荐

GC系列:如何优化引用计数算法(1)

引言    标记-清除,标记-整理,复制式回收算法都是属于间接式的:先从根集合出发,遍历根集合图,找到存活的对象,再反向确定出死亡的对象。而引用计数算法则可以通过引用关系的创建和删除直接确定对象的存活...

深入理解JVM03--判断对象是否存活(引用计数算法、可达性分析算法,最终判定),Eclipse设置GC日志输出,引用

堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆回收之前,第一件事情就是要确定这些对象哪些还“存活”着,哪些对象已经“死去”(即不可能再被任何途径使用的对象) 1、引用计数算法(Refer...

python引用计数和gc垃圾回收

一,引用计数和垃圾回收介绍: python采用"引用计数"和"垃圾回收"两种机制来管理内存。 引用计数通过记录对象被引用的次数来管理对象。 对对象的引用都会使得引用计数加1,移除对对象的引用,引用计数...

引用计数 vs. GC

关于 ARC 和 GC 两种不同内存回收方式的文章。
  • yunbaIO
  • yunbaIO
  • 2016年08月24日 16:46
  • 198

深入理解Java虚拟机-(1)引用计数算法

Java虚拟机

垃圾收集器:引用计数算法

引用计数算法作为垃圾收集器最早的算法,有其优势,也有其劣势,虽然现在的JVM都不再采用引用计数算法进行垃圾回收【例如Sun的Java hotspot采用了火车算法进行垃圾回收】,但这种算法也并未被淘汰...

Garbage Collection | 引用计数算法

这是一个比较直接的算法,其基本手段是为每一个单元计算指向它的引用(来自其他活动单元或者根)的数量【Collins,1960】.它的优点在于能够非常简单的判断单元是否...

Java对象是否存活之引用计数算法&可达性分析算法

java通过虚拟机的GC机制来完成不使用对象的回收,虚拟机判断对象是否存活的方法有两种,分别是引用计数算法和可达性分析算法。 引用计数算法 为对象添加一个引用计数器,每当有位置引用它的时候,计数器的...

OC基础15:内存管理和自动引用计数

1、什么是ARC?    (1)、ARC全名为Automatic Reference Counting,即是自动引用计数,会自动统计内存中对象的引用数,并在适当时候自动释放对象;    (...

azul 的c4 gc算法论文

  • 2012年12月01日 23:02
  • 601KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:15.GC时候的引用计数算法和根搜索算法(用于标示GC)
举报原因:
原因补充:

(最多只允许输入30个字)