<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    .NET垃圾收集器的過去、現在和未來(一)

    Patrick Dussud介紹:
    Patrick Dussud在微軟工作了11年,曾經負責VBA、Jscript、MS Java等語言運行時的垃圾收集器(Garbage Collector)的設計,目前負責.NET CLR垃圾收集器的設計。他是.NET CLR的架構師,WinFX的首席架構師,Windows架構師組的成員。
    在微軟之前,Patrick是德州儀器(TI)Explorer工作站系統的主要設計人,Lucid公司Energize產品的首席架構師。

    關鍵內容摘要

    1. 微管理 / 內存的顯式管理 ---  手動內存管理(new/delete)
            你必須保證在釋放之前內存沒有被別人使用,如果你把內存給了別人,往往你就不確定應該何時釋放內存了。當你釋放了內存,不知道別人正在使用這塊內存時,就產生了程序崩潰的問題。所以,當你顯式進行“new”和“delete”時,內存管理是一個復雜的問題,并且,此時你的代碼不可組合。要么你必須確定對自己的內存有完全的控制,因此,要達到這種完全隔離的目的,你必須在將內存傳遞給別的模塊時進行完全拷貝,這樣,別的模塊就只對這個完全拷貝的內存負責。要么你就得在某個地方形成對整個內存池的統一的管理,這就是自動化內存管理,這就是垃圾收集器的工作。

    2. 對象終止器的調用時機由垃圾收集器決定,這些對象的析構函數被調用的先后順序是無法預先確定的。提出了“關鍵終止化對象”的概念。當有一系列對象需要終止化時,關鍵終止化對象最后被終止化,直到上層對象干完工作前。

    3.  工作機理: 垃圾收集器首先遍歷所有的棧和靜態變量,然后返回最初的樹集。然后遍歷樹集對程序能夠到達的每一個對象作標記。此時,我們就能逐個對象地檢查內存,發現它被標記了,好的,留下。沒有被標記?喔,我們有一個垃圾了。

    4.  垃圾收集器的絕大部分速度和效率都來源于對回收策略的調整。通過保持內存緊湊,形成緩存本地化,頁面本地化等等優勢,很可能其效率甚至高于傳統“new”和“delete” 操作,尤其是對于非常難以管理的服務器內存來說更是如此。


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲一区二区三区免费在线观看 | 亚洲AⅤ无码一区二区三区在线| 久久综合国产乱子伦精品免费| 1a级毛片免费观看| 亚洲V无码一区二区三区四区观看| 91亚洲精品自在在线观看| 久久精品免费观看| 亚洲avav天堂av在线不卡| 国产猛男猛女超爽免费视频| 亚洲AV无码欧洲AV无码网站| 老司机69精品成免费视频| 日韩亚洲AV无码一区二区不卡 | 免费无码黄网站在线观看| 久久精品国产亚洲av麻豆图片| 精品乱子伦一区二区三区高清免费播放| 日本免费污片中国特一级| 亚洲AV永久无码精品水牛影视 | 亚洲综合在线成人一区| 亚洲一级毛片免费看| 亚洲乱码国产乱码精华| 在线观看亚洲免费视频| 免费的黄色的网站| 亚洲AV永久无码区成人网站| 日韩精品免费一级视频| 亚洲va中文字幕| 在线精品亚洲一区二区小说 | 国产人成网在线播放VA免费| 亚洲va久久久噜噜噜久久天堂| 亚洲日本中文字幕天天更新| 亚洲Av无码国产情品久久| 亚洲?V乱码久久精品蜜桃| 久久久久久噜噜精品免费直播| 午夜a级成人免费毛片| 国产成人亚洲毛片| 亚洲av综合av一区| 精品无码国产污污污免费| 久久不见久久见免费影院www日本| 亚洲?V乱码久久精品蜜桃 | 青青操在线免费观看| 亚洲福利一区二区精品秒拍| 成年在线观看免费人视频草莓|