天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

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

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

  一.關于垃圾回收機制●

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

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

  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)存中的對象,位于淺藍色 區(qū)域,經(jīng)過Mark后,ACDF標記為可用,Sweep過程清除了BE,Compact過程移動了ACDF,使之位于連續(xù)存儲區(qū)域中;第二次使用綠色做標記;第三次GC使用藍色表示標記;可以看出第三次GC過程沒有了指針移動的壓縮過程。

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

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

主站蜘蛛池模板: 无人影院在线播放 | 扒开女生尿口 | 寂寞少妇直播 | 日本黄色网站在线观看 | 国产精品爽爽久久久久久竹菊 | 精品国产免费第一区二区 | 国产亚洲色婷婷久久精品99 | 免费视频国产在线观看网站 | 暖暖视频大全免费观看 | 精品少妇爆AV无码专区 | 国产h视频免费观看 | 午夜视频在线观看国产 | SM调教贱屁股眼哭叫求饶H | 3D漫画H精品啪啪无码 | bl 纯肉 高Hbl被强文 | 欧美亚洲日韩自拍高清中文 | 久青草国产观看在线视频 | 黄色三级视频在线 | adc我们的永久网址 adc网址在线观看 | 大胸美女被吊起来解开胸罩 | 久久天堂成人影院 | 人妻换人妻AA视频 | 永久免费毛片 | jiz在线播放jizijzz | 我强进了老师身体在线观看 | 久久国产热视频99rev6 | 蜜臀AV人妻久久无码精品麻豆 | 精品国产中文字幕在线视频 | 老年日本老年daddy | 亚洲中文无码AV在线观看 | A级韩国乱理伦片在线观看 a级成人免费毛片完整版 | 精品视频在线播放 | 亚洲精品视频免费在线观看 | 高hh乱亲女真实 | 精品无人区麻豆乱码无限制 | 九九九色成人网 | 亚洲精品国产品国语在线试看 | 久久精品亚洲精品国产欧美 | poronovideos动物狗猪 | 果冻传媒色AV国产播放 | 亚洲欧美一区二区久久 |