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