<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” 操作,尤其是對于非常難以管理的服務器內存來說更是如此。


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


    網站導航:
     
    主站蜘蛛池模板: 好爽又高潮了毛片免费下载| 久久久久久一品道精品免费看 | 亚洲国产成人久久综合一| 日本视频免费观看| 亚洲国产精品成人网址天堂| 精品国产亚洲AV麻豆| 免费人妻av无码专区| 一个人看的免费视频www在线高清动漫| 国产乱弄免费视频| 日韩在线视频播放免费视频完整版| 少妇亚洲免费精品| 中文字幕免费在线视频| 亚洲国产精品无码久久久不卡| 性无码免费一区二区三区在线| 亚洲精彩视频在线观看| 成年女人免费v片| 免费精品视频在线| 国产亚洲一区二区三区在线观看| 日本不卡免费新一区二区三区| 亚洲精品无码久久久久久久 | 免费国产叼嘿视频大全网站| 亚洲一本综合久久| 亚洲成在人线aⅴ免费毛片| 国产亚洲美女精品久久| 亚洲综合色婷婷七月丁香| 日本免费人成视频在线观看| 亚洲同性男gay网站在线观看| 日本免费的一级v一片| 一级有奶水毛片免费看| 亚洲综合无码一区二区三区| 国产精品冒白浆免费视频| 国内精品免费久久影院| 亚洲黄色激情视频| 国产gv天堂亚洲国产gv刚刚碰 | 久久99精品视免费看| 亚洲精品综合在线影院| 亚洲日本韩国在线| 我的小后妈韩剧在线看免费高清版| 亚洲AV日韩综合一区| 国产国拍亚洲精品mv在线观看| 国产精品免费观看久久|