`
frenchmay
  • 浏览: 228848 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

深入java虚拟机第9章, 垃圾收集(3)火车算法

阅读更多

大范围的垃圾收集会占用大量的资源和时间,可能会导致暂停和无法满足实时系统的要求。因此,使用渐进式的收集算法。

火车算法是为了在成熟对象空间提供限度时间的渐进收集。

 

车厢,火车和火车站

火车算法把成熟对象空间划分为固定长度的内存块,算法每次在一个块中单独执行。每个块属于一个集合。

块被叫车厢,集合被叫做火车,成熟对象空间是火车站。

火车被排序,块被附加到火车的尾部。

 

这种方式表示出了成熟对象空间内所有块的总体排序。

 

车厢收集

火车算法执行的时候,要么收集最小数字火车中的最小数字车厢,要么收集整个最小数字火车。

如果整个火车都是垃圾对象,那么整个火车都被收集。否则,收集最小数字车厢。

收集最小数字车厢时,如果发现该车厢内部有被其他车厢引用对象则会转移到引用的车厢,如此循环,最后收集整个车厢。

收集最小数字火车时,如果发现该火车内有被其他火车引用对象则会转移到引用的火车,如此循环,最后收集整个火车。

 

 

 

 

记忆集合和流行对象

为了促进收集过程,火车算法使用了记忆集合。一个记忆集合是一个数据结构,包含所有对一节车厢或者一列火车的外部引用。一个空的记忆集合表明车厢或者火车中的对象都不再被车厢或者火车外的任何变量引用,可以被垃圾收集。

 

 

 

 

  • 大小: 3.6 KB
  • 大小: 3.9 KB
  • 大小: 3.9 KB
分享到:
评论

相关推荐

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    第9章 垃圾收集 9.1 为什么要使用垃圾收集 9.2 垃圾收集算法 9.3 引用计数收集器 9.4 跟踪收集器 9.5 压缩收集器 9.6 拷贝收集器 9.7 按代收集的收集器 9.8 自适应收集器 9.9 火车算法 9.9.1 ...

    深入java虚拟机第二版

    深入java虚拟机第二版 第1章 Java体系结构介绍 1.1 为什么使用Java 1.2 网络带来的挑战和机遇 1.3 体系结构 1.3.1 Java虚拟机 1.3.2 类装载器的体系结构 1.3.3 Java class文件 1.3.4 Java API 1.3.5 ...

    实战JAVA虚拟机

    第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机中类的装载系统。第11章介绍了Java虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。, 《实战Java虚拟机——JVM故障诊断与...

    实战java虚拟机

    第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机中类的装载系统。第11章介绍了Java虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。 《实战Java虚拟机——JVM故障诊断与...

    深入Java虚拟机

    第9章 垃圾收集 9.1 为什么要使用垃圾收集 9.2 垃圾收集算法 9.3 引用计数收集器 9.4 跟踪收集器 9.5 压缩收集器 9.6 拷贝收集器 9.7 按代收集的收集器 9.8 自适应收集器 9.9 火车算法 9.9.1 ...

    深入JAVA虚拟机(第2版)

    第9章 垃圾收集 9.1 为什么要使用垃圾收集 9.2 垃圾收集算法 9.3 引用计数收集器 9.4 跟踪收集器 9.5 压缩收集器 9.6 拷贝收集器 9.7 按代收集的收集器 9.8 自适应收集器 9.9 火车算法 9.9.1 ...

    实战Java虚拟机——JVM故障诊断与性能优化

    第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机中类的装载系统。第11章介绍了Java虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。, 《实战Java虚拟机——JVM故障诊断与...

    实战Java虚拟机——JVM故障诊断与性能优化 pdf

    第1~~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了...

    实战JAVA虚拟机 JVM故障诊断与性能优化

    第1~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java...

    实战JAVA虚拟机++JVM故障诊断与性能优化.pdf

    第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机中类的装载系统。第11章介绍了Java虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。 《实战Java虚拟机——JVM故障诊断与...

    深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程

    第9节Java技术体系00:08:46分钟 | 第10节jdk8的新特性00:07:31分钟 | 第11节lanmbda表达式简介00:07:02分钟 | 第12节Java虚拟机-classic vm00:06:06分钟 | 第13节Java虚拟机-ExactVM00:03:35分钟 | 第14节Java...

    Java虚拟机

    第9章 类加载及执行子系统的案例与实战 9.1 概述 9.2 案例分析 9.2.1 Tomcat:正统的类加载器架构 9.2.2 OSGi:灵活的类加载器架构 9.2.3 字节码生成技术与动态代理的实现 9.2.4 Retrotranslator:跨越JDK...

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    / 221 8.4.2 基于栈的指令集与基于寄存器的指令集 / 223 8.4.3 基于栈的解释器执行过程 / 224 8.5 本章小结 / 230 第9章 类加载及执行子系统的案例与实战 / 231 9.1 概述 / 231 9.2 案例分析 / 231 9.2.1 ...

    Java虚拟机规范(Java SE 7)

    第3章 为JAVA虚拟机编译 ............................................... 53 Java 虚拟机规范 — 目录 第 10 页 / 共 387 页 3.1 示例的格式说明 ................................................. 53 3.2 常量...

    Java虚拟机规范(Java SE 7).pdf

    第3章 为JAVA虚拟机编译 ............................................... 53 Java 虚拟机规范 — 目录 第 10 页 / 共 387 页 3.1 示例的格式说明 ................................................. 53 3.2 常量...

    深入理解JVM内存结构及运行原理全套视频加资料.txt

     第9讲 Java技术体系 00:08:46  第10讲 jdk8的新特性 00:07:31  第11讲 lanmbda表达式简介 00:07:02  第12讲 Java虚拟机-classic vm 00:06:06  第13讲 Java虚拟机-ExactVM 00:03:35  第14讲 Java虚拟机-...

    Weka3-9-2 Windows 64位(不带Java虚拟机)

    WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。2005年8月,在第11届ACM SIGKDD国际会议上...

    玩转Java虚拟机(九)

    打卡学习JVM,第九天 本人学习过程中所整理的代码,源码地址 JVM垃圾回收(GC)模型 垃圾判断算法 GC算法 垃圾回收器的实现和选择 – 垃圾判断算法 引用计数算法(Reference Counting) 给对象添加一个引用计数器,...

Global site tag (gtag.js) - Google Analytics