CLR GC
2016-07-22 17:26
169 查看
一、垃圾回收算法
每个应用程序都包含一组根(root),每个根都是一个存储位置,他要么为null,要么指向托管堆的一个对象,类型中定义的静态字段、局部变量、方法参数等都会被认为是根。
垃圾回收器(GC)开始执行时,他会假设堆中的所有内存都是垃圾,换句话说,他假设线程栈、CUP寄存器中没有指针引用了堆中的对象,GC会在第一阶段对堆中的对象作标记(marking),如果发现跟引用了一个对象,就在对象的同步索引块上开启一位进行标记,同一个对象只标记一次;标记完成后,GC开启第二阶段:压缩,GC会线性遍历堆,寻找未标记的对象内存块,优先移动连续的较大的内存块到压缩堆,垃圾回收会造成显著的性能损失。
每个应用程序都包含一组根(root),每个根都是一个存储位置,他要么为null,要么指向托管堆的一个对象,类型中定义的静态字段、局部变量、方法参数等都会被认为是根。
垃圾回收器(GC)开始执行时,他会假设堆中的所有内存都是垃圾,换句话说,他假设线程栈、CUP寄存器中没有指针引用了堆中的对象,GC会在第一阶段对堆中的对象作标记(marking),如果发现跟引用了一个对象,就在对象的同步索引块上开启一位进行标记,同一个对象只标记一次;标记完成后,GC开启第二阶段:压缩,GC会线性遍历堆,寻找未标记的对象内存块,优先移动连续的较大的内存块到压缩堆,垃圾回收会造成显著的性能损失。
相关文章推荐
- Android-启动模式task-lunchmodle-intent flag
- 嵌入式系统内存使用情况评估方法探究
- 照着MSDN用Bitmap,居然还是没用明白,原来问题在这里....
- 全球首发免费的MySql for Entity Framework Core
- hdu 5723 Abandoned country(最小生成树,dfs)
- Asp.Net MVC2.0 Url 路由入门---实例篇
- TCP网络编程
- NSBundle
- HDOJ 1798 Rightmost Digit
- 【php】mysql事务commit自动提交
- xcode 编译成功但是模拟器无法运行问题,product中run按钮为灰色问题
- LightOJ 1237 Cyber Cafe 费用流
- CSS Sprite图
- PHP Warning: File upload error - unable to create a temporary file in Unknown on line 0
- Zend-MVC intro
- linux的性能优化
- 欢迎使用CSDN-markdown编辑器
- 神经网络:表示
- Javascript 多线程?
- win7 下 Myeclipse 集成 svn 插件之后,启动报错 "Failed to load JavaHL Library"