类比:
自己去拿盘子 = 申请内存
用完之后自已放到残渣中 = 手动释放
阿姨来回收 = 自动回收(比如垃圾太多了,新客户来了)
自己叫阿姨来回收 = 手动调用自动回收

CLR的一个核心功能–垃圾回收
垃圾回收的目的:提高内存利用率
垃圾回收器,只回收托管堆中内存资源,不回收其他资源(数据库连接、文件句柄、网络端口)
什么样的对象才会被回收?
(1) 没有变量引用的变量,表示可以被回收了
什么时候回收
(1) 不确定,当程序需要新内存的时候开始执行回收
(2) GC.Collect()手动调用回收。不建议使用,垃圾回收时会暂停一下(非常短暂)
垃圾回收器中"代"的概念:
(1) 共3代:第0代,第1代,第2代
GC.Collect(0);//回收第0代
(2) 各代的回收频率:第0代最高,其次第1代,再次第2代。也就是说越老的对象生存几率越大
第0代,第1代,第2代指定固定大小的空间
创建对象时默认往前代(第0代)放入,如果第0代没有空间了,开始准备垃圾回收,
其中第0代有些对象因为还有引用所以释放不了,就往后代(第1代)放。这时候第0代就没有东西了。这个时候新对象就放入时就依然进入第0代,如果第0代又满了的话,就开始垃圾回收第0代,如果到后面第1代满了,开始回收第1代,第1代存活下来的就放到第2代了。如果到后面第2代满了且都活着,那么这个时候第1代因为满了还有一些释放不了的需要放到第2代因为第2代空间满了进不去。这个时候会对每代开始尝试扩容。如果最后扩容不了,开始抛异常
net中垃圾回收机制:mark-and-compact(标记和压缩),一开始假设所有对象都是垃圾
除了内存资源外其他资源怎么办?或则Dispose

.net C#垃圾回收相关推荐

  1. Java垃圾回收之老年代垃圾收集器

    1.Serial Old 收集器(-XX: +UseSerialOldGC, 标记-整理算法) 单线程收集,进行垃圾收集时,必须暂停所有工作线程 简单高效,Client模式下默认的老年代收集器 2.P ...

  2. 垃圾回收 内存管理 python

    20220225 https://mp.weixin.qq.com/s/94SmSNEkwmz-Eu-hBUo0Lg Python的内存管理机制 在windows 中直接在任务管理其中关掉python ...

  3. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?...

    一.垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?   1.对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址.大小以及使用情况. 通常, ...

  4. Python 精选笔试面试习题—sorted 与 sort 单例模式、统计字符个数Count、垃圾回收、lambda函数、静态方法、类方法、实例方法、分布式锁、

    1. 字典根据键从小到大排序? In[38]: dic = {"name": "Tom", "age": 30, "country ...

  5. c# 垃圾回收是引用类型而言的

    c# 垃圾回收是引用类型而言的 转载于:https://www.cnblogs.com/C-CHERS/p/3646387.html

  6. java 对象被回收的例子_Java对象的后事处理——垃圾回收(二)

    1 先谈Finalize() finalize()能做的所有工作,使用try-finally或者其他方式都可以做得更好.更及时,所以笔者建议大家完全可以忘掉Java语言中有这个方法的存在. --< ...

  7. java分代技术_JVM调优总结(六):分代垃圾回收详述2

    分代垃圾回收流程示意 选择合适的垃圾收集算法 串行收集器 用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高.但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器.当然,此收集器 ...

  8. 详细介绍Java垃圾回收机制

    垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机 ...

  9. 编程基础 垃圾回收_为什么我回收编程问题

    编程基础 垃圾回收 by Amy M Haddad 通过艾米·M·哈达德(Amy M Haddad) 为什么我回收编程问题 (Why I Recycle Programming Problems) M ...

  10. 想知道垃圾回收暂停的过程中发生了什么吗?查查垃圾回收日志就知道了!

    \ 关键点 \ 垃圾回收日志中包括着一些关键性能指标: \ 要做一次正确的垃圾回收分析需要收集许多数据,所以好的工具是非常必要的: \ 除了垃圾回收之外还有很多事件都可能会让应用程序暂停: \ 让你的 ...

最新文章

  1. 直接依赖,间接依赖,可选依赖,排除依赖,依赖冲突
  2. centos中文乱码修改字符编码使用centos支持中文
  3. 图书 网管天下系列图书 之 网络管理工具实用详解 目录
  4. 20145237 《信息安全系统设计基础》第2周学习总结
  5. php程序员写bug,程序员的修炼-我们为什么会编写BUG
  6. vi通过Vundle安装和删除插件
  7. Kafka笔记-搭建及单机生产者、消费者操作
  8. SpringCloud 使用Zuul构建微服务网关
  9. 够狠 | 单点登录三种方式,够狠!够劲爆!
  10. bzoj3172:[Tjoi2013]单词
  11. linux常用命令详解(二)
  12. 上海译文公布2019年“新书目录” 名家名译作品结集出版
  13. windows ping不通虚拟机ip地址
  14. android studio 中要在app名称中添加特殊符号
  15. CUDA加速——共享内存介绍及其应用
  16. Customize your Chatter Experience.
  17. go-ipfs-api
  18. python编码问题无法复现_彻底解决Python编码问题
  19. 分段函数的期望和方差_题组25随机变量的分布列、期望与方差、正态分布
  20. 音乐人工智能在国内计算机领域虽然有所进步但发展缓慢

热门文章

  1. 统计局解读去年工业企业利润:多数行业利润比上年增加
  2. OleDbCommand 的用法
  3. 这几个Python装逼神器一定要收藏好
  4. 解决紫鸟浏览器卡顿问题
  5. 开源法律蓝调:您遵守吗?
  6. GIT学习笔记(git工具安装与配置)
  7. Python爬虫入门教程09:多线程爬取表情包图片
  8. 和一位创业老板的聊天
  9. COMFORT 酒店 | 百年英式小熊伴你开启温暖圣诞季
  10. VScode使用gitlab