四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

.Net Discovery系列-深入理解平臺機(jī)制與性能影響(上)

  轉(zhuǎn)眼間《.NET Discovery》系列文章已經(jīng)推出1年了,本文為該系列的第10-13篇文章,在本文中將對以前所講的.NET平臺知識做一個小小的總結(jié)與機(jī)制分析,引出并重點(diǎn)介紹這些機(jī)制對程序性能的影響與改進(jìn)建議。

  本文將分為四部分,分別講述了:垃圾回收機(jī)制、即時編譯機(jī)制、異常處理機(jī)制、字符串駐駐留機(jī)制的原理與性能改進(jìn)建議。

  《.NET Discovery》系列的每篇文章撰寫耗時都在2天以上,轉(zhuǎn)載時麻煩著名作者Aicken(李鳴),并且未經(jīng)作者同意,禁止一切商業(yè)用途!

  一.關(guān)于垃圾回收機(jī)制●

  機(jī)制分析垃圾收集器是.NET平臺的一個特性,它自動回收托管堆上不再使用的對象,及時清理內(nèi)存,這一切都是對開發(fā)人員透明的,當(dāng)然你也可以手動把它召喚出來,它的本質(zhì)就是跟蹤所有被引用到的對象,整理對象不再被引用的對象,回收相應(yīng)的內(nèi)存。垃圾收集機(jī)制采用標(biāo)記與清除(Mark Sweep)算法來完成上述任務(wù),整個過程分為兩步:

  Step 1.Mark-Sweep :從應(yīng)用程序的root出發(fā),利用相互引用關(guān)系,遍歷其在Heap上動態(tài)分配的所有對象,指明需要回收的對象,標(biāo)記出那些存活的對象,予以標(biāo)記。

  Step 2.Compact: 對內(nèi)存中存活的對象進(jìn)行移動,修改它們的指針,使之在內(nèi)存中連續(xù),這樣空閑的內(nèi)存也就連續(xù)了,即完成了內(nèi)存釋放工作,也解決了內(nèi)存碎片問題,這個過程也可以成為指針的壓縮。垃圾收集器一般將托管堆中的對象分為3代,這可以通過調(diào)用GC.MaxGeneration得知,對象按照存在時間長短進(jìn)行分代,最短的分在第0代,最長的分在第2代,第2代中的對象往往是比較大的,第二代空間被稱作Large Object Heap,對于2代對象的回收,與第0、1代回收方式相比最大的不同在于,沒有了指針移動的壓縮過程。如下圖,第一次GC時,左邊第一列A-F表示內(nèi)存中的對象,位于淺藍(lán)色 區(qū)域,經(jīng)過Mark后,ACDF標(biāo)記為可用,Sweep過程清除了BE,Compact過程移動了ACDF,使之位于連續(xù)存儲區(qū)域中;第二次使用綠色做標(biāo)記;第三次GC使用藍(lán)色表示標(biāo)記;可以看出第三次GC過程沒有了指針移動的壓縮過程。

NET技術(shù).Net Discovery系列-深入理解平臺機(jī)制與性能影響(上),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 杨超越穿游泳服装| 减肥蔬菜| 下截抖音| 女村长| 新白娘子传奇剧情| 是王者啊第二季免费观看完整版| 电影田螺姑娘| 光荣之路| 在床上在线观看| 秦时明月动画片| 辐射避难所掉脑袋问题答案| 爱情天梯| 张学明| 成人男女网24免费| cctv6电影节目表| 十一码复式22块钱中奖对照表| 黄金传说| 伊人1314| cctv体育频道5| 生物选择性必修三| 王瑞儿视频| 张韶涵个人简历| 日本电视剧《阿信》| 幼儿园一日活动的组织与实施| 泰迪熊 美剧| 繁星诗集1~25篇| 少女韩国| 黄姓的研究报告| 最新好看电影| 阿修罗城之瞳| 十一码复式中奖表图片| 你从草原走来| 周超个人资料简介| 诺亚方舟电影免费完整版在线观看 | 被打屁股的作文| 啪啪电影网址| 以家人之名小说原著| 礼佛大忏悔文注音版全文| 女生操女生| 日韩欧美动作影片| 暗夜尖叫1988美国版高清观看|