关于GC垃圾回收的原理
.NET Framework 并不需要担心垃圾回收。但我们还是需要了解它的原理。才能让我们写出更高效的应用程序。
.Net Framework 有一个GC(垃圾回收器),它会自动的帮我们把不需要的数据清除掉。
这时就遇见一个问题。哪些数据需要清理,哪些数据需要保留。
就像宿舍有2个舍友,宿舍中有电视机,有遥控器,有垃圾桶,有衣服,等。我要整理宿舍,这时舍友给我列出了一张“根‘表。任何常用的物品,或正常使用与其相关的物品都将递归保存到这张”跟“表中。(就像我们要保留电脑,那键盘和鼠标也都将保存)。
GC 就是根据JIT和CLR提供的这张跟表递归遍历需要保存的数据。然后清理掉不需要的数据
这张跟表中包括1、全局/静态指针
2、栈上的指针
3、CPU寄存器的指针
关于GC垃圾回收的原理的更多相关文章
- gc垃圾回收算法原理
目录 三色标记法 标记-清扫(Mark And Sweep)算法 标记-清扫(Mark And Sweep)算法存在什么问题? 三色并发标记法 gc和用户逻辑如何并行操作? 进程新生成对象的时候,GC ...
- GC垃圾回收算法
什么是GC垃圾回收呢.日常生活中我们去餐厅吃饭吃完饭,吃完饭走了餐具不用管,服务员在把餐具拿走,这是一种方式,服务员怎么知道他要来把餐具拿走呢,因为你走了,这个位置空了.服务员什么时候拿走餐具很重要, ...
- 图解 CMS 垃圾回收机制原理,-阿里面试题
最近在整理JVM相关的PPT,把CMS算法又过了一遍,每次阅读源码都能多了解一点,继续坚持. 什么是CMS CMS全称 ConcurrentMarkSweep,是一款并发的.使用标记-清除算法的垃圾回 ...
- JVM 及 垃圾回收机制原理
JVM Java 虚拟机 Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制.JVM实现了Java语言最重要的特征:即平台无关性.原理:编译后的 ...
- Java虚拟机笔记(二):GC垃圾回收和对象的引用
为什么要了解GC 我们都知道Java开发者在开发过程中是不需要关心对象的回收的,因为Java虚拟机的原因,它会自动回收那些失效的垃圾对象.那我们为什么还要去了解GC和内存分配呢? 答案很简单:当我们需 ...
- 李洪强iOS经典面试题37-解释垃圾回收的原理
李洪强iOS经典面试题37-解释垃圾回收的原理 问题 我们知道,Android 手机通常使用 Java 来开发,而 Java 是使用垃圾回收这种内存管理方式. 那么,ARC 和垃圾回收对比,有什么 ...
- 李洪强iOS经典面试题31-解释垃圾回收的原理
李洪强iOS经典面试题31-解释垃圾回收的原理 问题 我们知道,Android 手机通常使用 Java 来开发,而 Java 是使用垃圾回收这种内存管理方式. 那么,ARC 和垃圾回收对比,有什么优点 ...
- 面试官,不要再问我“Java GC垃圾回收机制”了
Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈. 楔子-JVM内存结构补充 在上篇<JVM之内存结构详解> ...
- JVM虚拟机 与 GC 垃圾回收
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.JVM体系结构概述 1.JVM 与系统.硬件 JVM是运行在操作系统之上的,它与硬件没有直接的交 ...
随机推荐
- MySQL 主从同步
http://blog.csdn.net/z69183787/article/details/53897894
- 南阳理工 题目9:posters(离散化+线段树)
posters 时间限制:1000 ms | 内存限制:65535 KB 难度:6 描述 The citizens of Bytetown, AB, could not stand that ...
- JetBrains发布了IntelliJ IDEA 2016.1
JetBrains日前发布了IntelliJ IDEA 2016.1,即他们最受欢迎的IDE的最新版本.这个新版本应该是考虑了多语言开发者的需求,其在许多语言和技术都有很多的增强:然而最惹人注目的变化 ...
- 简单的redis 性能测试
C:\Users\luhan.qian\Desktop\Tools\redis C:\Users\luhan.qian\Desktop\Tools\redis $ redis-benchmark.ex ...
- [Outlook] Outlook2013能收但无法发送邮件-0x800CCC13, 0x800CCC0B, 0x8004210B
[20140704更新],在公司收邮件的时候,问题再次出现,错误码:0x800ccc13,按照以下方法测试成功: 1. 按照以前办法,反复重启,失败 2. 按照以下参考连接A中的步骤 a. Click ...
- linux应用程序地址布局,王明学learn
linux应用程序地址布局 在学习Linux应用程序开发时,经常会遇到如下概念:代码段.数据段.BSS段(Block Started by Symbol,又名:未初始化数据段).堆(heap)和栈(s ...
- V for Vendetta
V for Vendetta V字仇杀队 复仇者V 安迪·沃卓斯基 and Larry Wachowski 思想,是最强大的武器.因为,世界上的独裁政府,有一个共同特点就是推行洗脑和愚民政策. 经典台 ...
- 学习iOS的网站
ios开发者 http://www.codeios.com/ cocoachina http://www.cocoachina.com code4app http://code4app.com ...
- ios录音
#import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewCont ...
- 使用canvas实现擦玻璃效果---转载
<!DOCTYPE html> <html> <head lang="zh"> <meta name="viewport&quo ...