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

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

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

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

  《.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)載需保留來源!

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

主站蜘蛛池模板: 色久久综合视频本道88 | 日本一本道高清码v | 日韩欧美中文字幕在线二视频 | 成年视频xxxxxx在线 | 无羞耻肉动漫在线观看 | 让人爽到湿的小黄书 | 欧美性xxx免费看片 欧美性xxx极品 | 少妇无套内谢久久久久 | 久久精品无码人妻无码AV蜜臀 | 中字幕视频在线永久在线 | 国产精品久久久久久日本 | 久久99综合国产精品亚洲首页 | 激情床戏揉胸吃胸视频 | 女bbbbxxx孕妇| 手机移动oa | 日本高清免费在线观看 | 亚洲黄色在线观看 | 第七色 夜夜撸 | 麻豆一区二区三区蜜桃免费 | 伊人热人久久中文字幕 | 久久久久综合网久久 | 免费观看高清黄页网址大全 | 好满射太多了装不下了视频 | 国产精品久久久久久久久久久 | 最近中文字幕高清中文字幕MV | 无人区大片中文字幕在线 | 久久99国产视频 | videossexo乌克兰| 国产人妻精品午夜福利免费不卡 | 99久久网站 | 蜜桃人妻无码AV天堂三区 | 日本无码人妻丰满熟妇5G影院 | 一区二区乱子伦在线播放 | 富婆大保健嗷嗷叫普通话对白 | 久青草国产在线观看视频 | 色综合伊人色综合网站 | 国产亚洲精品久久久久久一区二区 | 粗好大用力好深快点漫画 | 手机看片国产免费久久网 | 精品国产自在现线拍400部 | yy8090理论三级在线看 |