一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

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

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

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

  一.關于垃圾回收機制●

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

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

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

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

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

主站蜘蛛池模板: 国产只有精品 | 国产91麻豆视频 | 91精品国产综合久久久久久 | 精品久久久久久久久久 | 成年在线视频 | 亚洲女人影院想要爱 | 一区二区三区四区五区六区 | 久久er国产精品免费观看1 | 一区二区三区在线视频观看 | 69精品在线观看 | 交资源网在线观看 | 青青草一区二区免费精品 | 色视频在线观看在线播放 | 91精品国产免费青青碰在线观看 | 伊人热热久久原色播放www | 男人把女人c爽的免费视频 男人操女人免费视频 | 亚洲天堂成人在线观看 | 亚洲高清视频网站 | 九九国产在线视频 | 久久精品国产亚洲婷婷 | 欧美白人猛性xxxxx交69 | 天天做天天爱夜夜大爽完整 | 超级碰碰青草免费视频92 | 国产免费成人在线视频 | 久久国产亚洲精品麻豆 | 美女视频很黄很a免费国产 美女视频黄.免费网址 | 最新国产精品精品视频 | 欧美视频精品 | 久久精品国产2020观看福利色 | 青青草原播放器 | 欧美亚洲国产精品第一页 | 黄色影片免费观看 | 欧美一级特黄aa大片婷婷 | 精品久久影院 | 亚洲一区在线免费观看 | 国产亚洲网站 | 欧美色综合高清视频在线 | 精品国产免费福利片 | 在线观看国产小视频 | 国产盗摄精品一区二区三区 | 91精品国产色综合久久不 |