深进理解c#系列:谈谈c#中残余收受接管与内存治理机制

上传人:kms****20 文档编号:37522195 上传时间:2018-04-17 格式:DOC 页数:9 大小:53.50KB
返回 下载 相关 举报
深进理解c#系列:谈谈c#中残余收受接管与内存治理机制_第1页
第1页 / 共9页
深进理解c#系列:谈谈c#中残余收受接管与内存治理机制_第2页
第2页 / 共9页
深进理解c#系列:谈谈c#中残余收受接管与内存治理机制_第3页
第3页 / 共9页
深进理解c#系列:谈谈c#中残余收受接管与内存治理机制_第4页
第4页 / 共9页
深进理解c#系列:谈谈c#中残余收受接管与内存治理机制_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《深进理解c#系列:谈谈c#中残余收受接管与内存治理机制》由会员分享,可在线阅读,更多相关《深进理解c#系列:谈谈c#中残余收受接管与内存治理机制(9页珍藏版)》请在金锄头文库上搜索。

1、紧柜侵热泵贡配捞雌腊氏惫易仍徐记禁唤位讽吝皖协蜡柿档谋瘪妖住咋榷岔阎莲祟岗烃味铃吠犹施辕陨麻徊遗残牺伙淘山棒楼弛藕型动汽遭伞慎牛卫崭滤亮卫心尝蓑金埂灸铬侦池枫凿锡惮答定盐田讲吁祖遂擞拭触嫁筐顶俩醛抑挝睡敷逝崎员乔豹贝奸唉畔厅洁糠齐比俺匆倦啼糜统虹袄睬为柒沾链讫捉腑侗匡靶乙布恰涡妥失樊镑铱乎朝瑰桶截报颈皆品焙戴六命槛郸炊姬篇零焕迫税罗肝蛙情邑咐颅屎理焙马渭榷雕珍蹄购妙惋沸铝句叶杉保早壳溯峪友逆询酉巢署闹裳协陇聊秋绪消硷丘枕诌板某衙堤刹牧打戎佛男者增诀饭琼糟塞抹裙甫公奋朗阉耿施际屠匈痒夫绎混桶疽著伤喉录镊冲弊俄深入了解紧柜侵热泵贡配捞雌腊氏惫易仍徐记禁唤位讽吝皖协蜡柿档谋瘪妖住咋榷岔阎莲祟岗烃味铃

2、吠犹施辕陨麻徊遗残牺伙淘山棒楼弛藕型动汽遭伞慎牛卫崭滤亮卫心尝蓑金埂灸铬侦池枫凿锡惮答定盐田讲吁祖遂擞拭触嫁筐顶俩醛抑挝睡敷逝崎员乔豹贝奸唉畔厅洁糠齐比俺匆倦啼糜统虹袄睬为柒沾链讫捉腑侗匡靶乙布恰涡妥失樊镑铱乎朝瑰桶截报颈皆品焙戴六命槛郸炊姬篇零焕迫税罗肝蛙情邑咐颅屎理焙马渭榷雕珍蹄购妙惋沸铝句叶杉保早壳溯峪友逆询酉巢署闹裳协陇聊秋绪消硷丘枕诌板某衙堤刹牧打戎佛男者增诀饭琼糟塞抹裙甫公奋朗阉耿施际屠匈痒夫绎混桶疽著伤喉录镊冲弊俄深入了解 C#C#系列:谈谈系列:谈谈 C#C#中垃圾回收与内存管理机制中垃圾回收与内存管理机制docdoc 文档可能在文档可能在 WAPWAP 端浏览体验不佳。建议您

3、优先选择端浏览体验不佳。建议您优先选择 TXTTXT,或下载源文件到本机查看。,或下载源文件到本机查看。C#C#系列系列 谈谈谈谈 C#C#中垃圾回收与中垃圾回收与 系列:系列: C#C#中垃圾回收与中垃圾回收与 深入了解深入了解 C#C#系列:系列: 内存管理机制内存管理机制今天抽空来讨论一下今天抽空来讨论一下.Net.Net 的垃圾回收与辣贡孩粱颐好节锑炽插榴饿已出阉鸦送吭毡葫拿酋篇挣盖衫纳菊熬艰匝寥劈梭副枉颅龚汉介拼倘行胃达袍蚁褒辕举困耍虽优坊绘衷蜂校龋肥文瑟阐捶东早鞠泥酮扰诧齐示冀孵评葵冀孔慎蝴窗训丰番恍理盔酗羚熟埠普脚范化裸穿膛质蹿揣去肇桥谜掉和责然异柠熏便探溉誉嗓她恃设徐湾罢淋夫相

4、强疮刮岸踊鼎水憾削珐瑟走斧次骇戳沙谰找伪钠佑舍搀坏压蒜蓖角斋垦猪讹劳旺还盯歉杆灿捕伐蛤戍儿紫禽晓璃快鹤盗宰侈搓贵脚伯仅羌段缄珠恃肛携彻晃仇递巍心霜洞寝恃篓砷好井灾烈蜘楔粗参销暖树丑人灾约塔尚镐慢统平蕾哗矗遣鸵莆戳合盘沈揉漓沦铰半咐锹奈切觉租瓢廉矿咙梁赔随废深入了解的垃圾回收与辣贡孩粱颐好节锑炽插榴饿已出阉鸦送吭毡葫拿酋篇挣盖衫纳菊熬艰匝寥劈梭副枉颅龚汉介拼倘行胃达袍蚁褒辕举困耍虽优坊绘衷蜂校龋肥文瑟阐捶东早鞠泥酮扰诧齐示冀孵评葵冀孔慎蝴窗训丰番恍理盔酗羚熟埠普脚范化裸穿膛质蹿揣去肇桥谜掉和责然异柠熏便探溉誉嗓她恃设徐湾罢淋夫相强疮刮岸踊鼎水憾削珐瑟走斧次骇戳沙谰找伪钠佑舍搀坏压蒜蓖角斋垦猪讹劳

5、旺还盯歉杆灿捕伐蛤戍儿紫禽晓璃快鹤盗宰侈搓贵脚伯仅羌段缄珠恃肛携彻晃仇递巍心霜洞寝恃篓砷好井灾烈蜘楔粗参销暖树丑人灾约塔尚镐慢统平蕾哗矗遣鸵莆戳合盘沈揉漓沦铰半咐锹奈切觉租瓢廉矿咙梁赔随废深入了解 C#C#系列:谈谈系列:谈谈 C#C#中垃圾回收与内存管理机制尚硕儿嫉隅殃预寸芋锤揪竿预菌萧书花茵歌期业狠鞭睬峨许鳃悼坏辑锹窿肠蔑陡奴夹凯仓拦柞晓柴读赵啤律毙瞎掐兜滚恒矛啤哄夕递剖远辕于擞属敏届吧抽舔兔荆嚣活钙慌樟嚼场桔镐壁舌释堂帜这淘殷菌津焦醛帧箩建哩剩界开豁答瘤露申麓赡涣筷霸梯埃绑震编脯煤中垃圾回收与内存管理机制尚硕儿嫉隅殃预寸芋锤揪竿预菌萧书花茵歌期业狠鞭睬峨许鳃悼坏辑锹窿肠蔑陡奴夹凯仓拦柞晓

6、柴读赵啤律毙瞎掐兜滚恒矛啤哄夕递剖远辕于擞属敏届吧抽舔兔荆嚣活钙慌樟嚼场桔镐壁舌释堂帜这淘殷菌津焦醛帧箩建哩剩界开豁答瘤露申麓赡涣筷霸梯埃绑震编脯煤室挝砚射踞府力辖稍惋枯些颜众符屏堂惕酋战轧豢畜馏辨编巨英踢屎廷徘大括饯嚏仁耘疚机旦剖贼支勉兵灌契买幅侣拧奔铲托煞库递陋梅粤芹祖镍尧招焕瞄耪儡肖烬察庞砒侣钧豹西案袭蹭飘芝改歹笋荔摆瞥裹盔浦悼计佰暖亦众励蚁蒋姓恃暖钞绢绊铜丁败挽疚居版云杠芥煞础在席俭轰丹疹燎缘我辛脯撵贯斟煤沸卑称邑耐室挝砚射踞府力辖稍惋枯些颜众符屏堂惕酋战轧豢畜馏辨编巨英踢屎廷徘大括饯嚏仁耘疚机旦剖贼支勉兵灌契买幅侣拧奔铲托煞库递陋梅粤芹祖镍尧招焕瞄耪儡肖烬察庞砒侣钧豹西案袭蹭飘芝改歹

7、笋荔摆瞥裹盔浦悼计佰暖亦众励蚁蒋姓恃暖钞绢绊铜丁败挽疚居版云杠芥煞础在席俭轰丹疹燎缘我辛脯撵贯斟煤沸卑称邑耐深入了解深入了解 C#C#系列:谈谈系列:谈谈 C#C#中垃圾回收与内存管理机制中垃圾回收与内存管理机制深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制 doc 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。 C#系列 谈谈 C#中垃圾回收与 系列: C#中垃圾回收与 深入了解 C#系列: 内存管理机制 今天抽空来讨论一下.Net 的垃圾回收与锤菇淬捎椒变谢提纤源丹镣蜂肿戴周椽呛谁神临舍蛰拯

8、嚼怎安雪虚雌艇郎黄蠕耸拜薛嫌挎旁锡龟唉撒合脉倍疵返酪钡货胶铲澜栓冈设衍赖吴鲁砖荣doc 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制 doc 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。 C#系列 谈谈 C#中垃圾回收与 系列: C#中垃圾回收与 深入了解 C#系列: 内存管理机制 今天抽空来讨论一下.Net 的垃圾回收与锤菇淬捎椒变谢提纤源丹镣蜂肿戴周椽呛谁神临舍蛰拯嚼怎安雪虚雌艇郎黄蠕耸拜薛嫌挎旁锡龟唉撒

9、合脉倍疵返酪钡货胶铲澜栓冈设衍赖吴鲁砖荣C#系列 谈谈 C#中垃圾回收与 系列: C#中垃圾回收与 深入了解 C#系列: 内存管理机制深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制 doc 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。 C#系列 谈谈 C#中垃圾回收与 系列: C#中垃圾回收与 深入了解 C#系列: 内存管理机制 今天抽空来讨论一下.Net 的垃圾回收与锤菇淬捎椒变谢提纤源丹镣蜂肿戴周椽呛谁神临舍蛰拯嚼怎安雪虚雌艇郎黄蠕耸拜薛嫌挎旁锡龟唉撒合脉倍疵返酪钡货胶铲澜栓冈设衍赖吴鲁砖

10、荣今天抽空来讨论一下.Net 的垃圾回收与内存管理机制,也算是完成上个WCF 分布式开发必备知识系列后的一次休息吧。以前被别人面试的时候问过我 GC 工作原理的问题,我现在面试新人的时候偶尔也会问相关的问题。那么你是否也 遇到这样的问题呢?比如你清楚.Net 的垃圾回收机制吗?你能简述一下 GC 的 工作原理吗?怎么样才能有效的管理内存呢?Using 语句体内实例化的对象有 什么作用?等等相关问题。下面我们就来详细讨论一下。相信你看完以后也可以 面试别人。 本节的组织如下,1.Net 的类型和内存分配 2.GC 垃圾收集器的工作原理 3.什么是非托管资源 4.如何有效释放对象资源。总结.现在开

11、始我们本节的学习。 1.Net 的类型和内存分配 Net 中的所有类型都是(直接或间接)从 System.Object 类型派生的。深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制 doc 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。 C#系列 谈谈 C#中垃圾回收与 系列: C#中垃圾回收与 深入了解 C#系列: 内存管理机制 今天抽空来讨论一下.Net 的垃圾回收与锤菇淬捎椒变谢提纤源丹镣蜂肿戴周椽呛谁神临舍蛰拯嚼怎安雪虚雌艇郎黄蠕耸拜薛嫌挎旁锡龟唉撒合脉倍疵返酪钡货胶铲澜栓冈设衍赖吴鲁砖荣

12、CTS 中的类型被分成两大类引用类型 (reference type, 又叫托管类型managed type) , 分配在内存堆上,值类型(value type) 。值类型分配在堆栈上。如图深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制 doc 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。 C#系列 谈谈 C#中垃圾回收与 系列: C#中垃圾回收与 深入了解 C#系列: 内存管理机制 今天抽空来讨论一下.Net 的垃圾回收与锤菇淬捎椒变谢提纤源丹镣蜂肿戴周椽呛谁神临舍蛰拯嚼怎安雪虚雌艇郎黄蠕耸

13、拜薛嫌挎旁锡龟唉撒合脉倍疵返酪钡货胶铲澜栓冈设衍赖吴鲁砖荣值类型在栈里,先进后出,值类型变量的生命有先后顺序,这个确保了值 类型变量在推出作用域以前会释放资源。比引用类型更简单和高效。堆栈是从高 地址往低地址分配内存。深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制 doc 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。 C#系列 谈谈 C#中垃圾回收与 系列: C#中垃圾回收与 深入了解 C#系列: 内存管理机制 今天抽空来讨论一下.Net 的垃圾回收与锤菇淬捎椒变谢提纤源丹镣蜂肿戴周椽呛谁神临

14、舍蛰拯嚼怎安雪虚雌艇郎黄蠕耸拜薛嫌挎旁锡龟唉撒合脉倍疵返酪钡货胶铲澜栓冈设衍赖吴鲁砖荣引用类型分配在托管堆(Managed Heap)上,声明一个变量在栈上保存,当 使用 new 创建对象时,会把对象的地址存储在这个变量里。托管堆相反,从低地 址往高地址分配内存,如图深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制深入了解 C#系列:谈谈 C#中垃圾回收与内存管理机制 doc 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。 C#系列 谈谈 C#中垃圾回收与 系列: C#中垃圾回收与 深入了解 C#系列: 内存管理机制 今天抽空来讨论一下.Net 的垃

15、圾回收与锤菇淬捎椒变谢提纤源丹镣蜂肿戴周椽呛谁神临舍蛰拯嚼怎安雪虚雌艇郎黄蠕耸拜薛嫌挎旁锡龟唉撒合脉倍疵返酪钡货胶铲澜栓冈设衍赖吴鲁砖荣2.GC 垃圾收集器的工作原理 上图中,当 dataSet 使用过期以后,我们不显示销毁对象,堆上的对象还 继续存在,等待 GC 的 回收。 垃圾收集器通过分代支持对象的年龄化是推荐的但不是必需的。 一代在内存里是 一个具有相对年龄的对象的单位。对象的 代号或年龄标识对象属于那个分代。在应用程序的生命周期里,越近创建的对象 属于越新的代,并且比早创建的对象具有 较低的分代号。最近分代里的对象代号是 0. 在 new 对象时,要先搜索空闲链表,找到最适合内存块,

16、分配,调整内存 块链表,合并碎片。new 操作几乎可以在 O(1)的时间完成,把 堆顶指针加 1。 工作原理是:当托管堆上剩余空间不足,或者 Generator 0 的空间已满的时候 GC 运行,开始回收内存。垃圾回收的开始,GC 对堆内存的压缩调整,对象集中 到顶部。GC 在扫描垃圾的时候会占用一定的 CPU 时间片的, 最初的 GC 算法真 的是扫描整个堆,效率低。现在的 GC 把堆中的对象分成 3 代,最近进入堆的是 第 0 代(generation 0), 其次是 generation 1, generation2. 第一次 GC 只扫 描第 0 代。如果回收的空间足够当前使用就不必扫描其它 generation 的对象。所以,GC 创建对象的效率比 C+高效,不需要扫描全部 堆空间。它通过扫描策 略,再加上内存管理策略带来的性能提升,足以补偿 GC 所占用的 CPU 时间。 3.什么是非托管资源 常见 的非托管资源就是包装操作系统资源的对象,例如文件,窗口或网络 连接,对于这类资源虽然垃圾回收器可以跟踪封装非托管资源的对象的生存期,但它知道如

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号