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

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

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

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

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

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

  機制分析垃圾收集器是.NET平臺的一個特性,它自動回收托管堆上不再使用的對象,及時清理內(nèi)存,這一切都是對開發(fā)人員透明的,當(dāng)然你也可以手動把它召喚出來,它的本質(zhì)就是跟蹤所有被引用到的對象,整理對象不再被引用的對象,回收相應(yīng)的內(nèi)存。垃圾收集機制采用標(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)存中存活的對象進行移動,修改它們的指針,使之在內(nèi)存中連續(xù),這樣空閑的內(nèi)存也就連續(xù)了,即完成了內(nèi)存釋放工作,也解決了內(nèi)存碎片問題,這個過程也可以成為指針的壓縮。垃圾收集器一般將托管堆中的對象分為3代,這可以通過調(diào)用GC.MaxGeneration得知,對象按照存在時間長短進行分代,最短的分在第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系列-深入理解平臺機制與性能影響(上),轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 韩诗雅| 女村长| 蝴蝶视频在线观看| 琪琪色影院| 意外的春天| 青春之放纵作文免费阅读| 阿尔法变频器说明书| 啊嗯视频| 抖音网页版电脑版| 美丽女老师| 四月一日| 褚阳| 一夜风流| 高清图库| 爱的重生| 我在等你泰剧剧情介绍| 魔鬼黑狱| 三年级片| 武林外史电视剧免费观看| 日本大片ppt免费ppt电影| 诺斯费拉图2024| 朴允载| 宁波电视台| 预备党员思想汇报1500字| 焦波| 音乐僵尸演员表| 小学生版《三国演义》| 超越天堂菲律宾| 零食加盟店10大品牌| 太太的情人 电影| 变形金刚6免费完整版在线观看| 蓝家宝电影| 2025最火蛋糕图片| 那个不为人知的故事电视剧| 天天操免费视频| 李洋个人资料照片| 黎明电影| 好像也没那么热血沸腾电影免费观看| 珠江电视台直播 珠江频道| 全国精神病查询系统官网| silk电影|