CLR GC是一种引用跟踪算法,大致步骤如下:

1、暂停进程中所有的线程;

2、标记阶段,遍历堆中的所有对象,标记为删除,然后检查所有活动根,如果有引用对象,就标记那个对象可达,否则不可达;

3、GC压缩阶段,对堆中可达对象压缩,使占用连续的内存;

GC是基于代的垃圾回收算法,对象越新,生存期越短,对象越老,生存期越长,回收堆的一部分,速度快于回收整个堆。

1、初始化的对象都是0代对象,当0代对象容量不足时,启动GC,可达对象成为1代对象,不可达对象由GC删除;

2、当1代对象占用过多内存时,启动GC,1代对象中的可达对象成为2代对象;

GC触发条件:

1、显式调用System.GC.Collect;

2、Windows报告低内存情况;

3、CLR正在制裁AppDomain;

4、CLR正在关闭。

最新文章

  1. 【纯css】响应式图片列表
  2. 如何配置Log4Net使用Oracle数据库记录日志
  3. html的<meta>标签的作用
  4. iPhone取消软件更新上边的1
  5. 直接使用editbox.clear()清空时,有时会无法清除完全,此时有清空文本框的另一种方法
  6. ASP文件操作(FSO)详解
  7. PROPAGATION_REQUIRED事务管理
  8. android moveTaskToback 应用退到后台,类似最小化
  9. C#设置标记方法等为否决的不可用
  10. js 中的bind函数
  11. C++ Primer中文本查询演示样例Query的实现
  12. ServletFileUpload 图片上传
  13. git使用之错误分析及解决(持续更新)
  14. 网络流n题
  15. 欢迎使用 MWeb-Test
  16. CUDA编程之快速入门
  17. LY tomcat 的闪退问题
  18. maven 引入外部jar包的几种方式(转)
  19. 使用RestTemplate调用接口上传文件
  20. Spring框架注解

热门文章

  1. 07 . Nginx常用模块及案例
  2. .net core 上传大文件
  3. flex布局以及常用属性。
  4. 实现一个字符串匹配算法,从字符串 H 中,查找 是否存在字符串 Y ,若是存在返回所在位置的索引,不存在返回 -1(不基于indexOf/includes方法)
  5. 【RT-Thread笔记】BH1750软件包的使用
  6. Java实现 LeetCode 139 单词拆分
  7. java实现递归连续数
  8. java实现第六届蓝桥杯四阶幻方
  9. java实现第四届蓝桥杯振兴中华
  10. java实现第六届蓝桥杯星系炸弹