老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

須知道.NET內存分配-創新互聯

在分析內存分配時,應該先了解關于堆棧的區別

新建ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

堆的分配向高地址擴展,而棧的分配向低地址擴展。

二。內存分配

關于內存的分配,首先應該了解分配在哪里的問題。CLR管理內存的區域,主要有三塊,分別為:

線程的堆棧,用于分配值類型實例。堆棧主要由操作系統管理,而不受垃圾收集器的控制,當值類型實例所在方法結束時,其存儲單位自動釋放。棧的執行效率高,但存儲容量有限。

GC堆,用于分配小對象實例。如果引用類型對象的實例大小小于85000字節,實例將被分配在GC堆上,當有內存分配或者回收時,垃圾收集器可能會對GC堆進行壓縮,詳情見后文講述。

須知道.NET 內存分配

  1. publicclass
  2. //分配1Byte
  3. publicbool
  4. publicbool
  5. return
  6. staticvoidstring
  7. //分配內存空間和初始化操作
  8. //將對象引用賦給aUser變量,建立aUser和VIPUser的關聯
  9. new
  10. //Q:類型的分配的字節數?
  11. //就本類而言需要15Byte。但是實例對象所占的字節總數還要加上對象附加成員所需的字節數,其中包括附加成員TypeHandle和SyncBlockIndex共8個字節。在托管堆上分配的字節總數為23字節,而堆上的內存塊總是按照4Byte的倍數進行分配,因此本類中將分配24字節的地址空間
  12. //最后調用對象構造器,進行對象初始化操作,完成創建
  13. //構造過程
  14. //a.構造VIPUser類型的Type對象,主要包括靜態字段、方法表、實現的接口等,并將其分配在上文提到托管堆的Loader Heap上。
  15. //b.初始化aUser的兩個附加成員:TypeHandle和SyncBlockIndex。將TypeHandle指針指向Loader Heap上的MethodTable,CLR將根據TypeHandle來定位具體的Type;將SyncBlockIndex指針指向Synchronization Block的內存塊,用于在多線程環境下對實例對象的同步操作。
  16. //c.調用VIPUser的構造器,進行實例字段的初始化。實例初始化時,會首先向上遞歸執行父類初始化,直到完成System.Object類型的初始化,然后再返回執行子類的初始化,直到執行VIPUser類為止。以本例而言,初始化過程為首先執行System.Object類,再執行User類,最后才是VIPUser類。最終,newobj分配的托管堆的內存地址,被傳遞給VIPUser的this參數,并將其引用傳給棧上聲明的aUser。
  17. true
  18. //上述過程,基本完成了一個引用類型創建、內存分配和初始化的整個流程
  19. publicclass
  20. //分配4個字節
  21. private
  22. //分配2個字節
  23. privatechar'A'
  24. publicclass
  25. //分配4byte
  26. private
  27. //保存了UserInfo的引用 占用4Byte
  28. //僅是一個引用(指針),保存在線程的堆棧上,占用4Byte的內存空間 用于保存user對象的有效地址 現在試圖對user的任何操作將拋出NullReferenceException
  29. private

LOH(Large Object Heap)堆,用于分配大對象實例。如果引用類型對象的實例大小不小于85000字節時,該實例將被分配到LOH堆上,而LOH堆不會被壓縮,而且只在完全GC回收時被回收。

在了解內存分配之前  首先了解一下三個概念

TypeHandle,類型句柄,指向對應實例的方法表,每個對象創建時都包含該附加成員,并且占用4個字節的內存空間。我們知道,每個類型都對應于一個方法表,方法表創建于編譯時,主要包含了類型的特征信息、實現的接口數目、方法表的slot數目等。

SyncBlockIndex,用于線程同步,每個對象創建時也包含該附加成員,它指向一塊被稱為Synchronization Block的內存塊,用于管理對象同步,同樣占用4個字節的內存空間。

NextObjPtr,由托管堆維護的一個指針,用于標識下一個新建對象分配時在托管堆中所處的位置。CLR初始化時,NextObjPtr位于托管堆的基地址。

三。繼承本質論

須知道.NET 內存分配

  1. //Bird bird創建的是一個對象的引用,而new Bird()是創建Bird對象,分配內存和初始化操作,然后將對象引用賦給bird變量,也就是簡歷bird和Bird 之間的關聯
  2. new
  3. //2.從繼承的角度來分析CLR在運行時如何執行對象的創建過程
  4. //2.1 首先是字段的創建 字段的存儲順序由上到下排列,最高層類的字段排在最前面
  5. //2.2方法表的創建是類第一次加載到AppDomain時完成的,在對象創建時只是將其附加成員TypeHandle指向方法列表Loader Heap上的地址,將對象與其動態方法列表相關聯起來,因此方法表示先于對象存在的。  
  6. new

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


網頁名稱:須知道.NET內存分配-創新互聯
鏈接地址:http://www.xueling.net.cn/article/dophsg.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产精品女人久久久久久 | 成人一区二区在线观看视频 | 99re6热在线精品视频播放 | 国产欧美亚洲日本 | 天天摸夜夜添狠狠添高潮出水 | 青青青国产精品视频 | 日本三级黄在线观看 | 日韩视频在线观看一区二区 | 亚洲高清在线 | 韩国av一区二区三区 | 国产成人福利片 | av无码中文字幕无码王 | 欧美日韩免费一区二区 | 黄色免费观看视频 | 亚洲欧美精品一区二区三区 | 蜜臀av性久久久久蜜臀av | 桃色av网站| 97国产精华最好的产品亚洲 | 亚洲精品国产高清一线久久 | 青青草视频在线看 | 亚洲一区二区三区日韩 | 在线视频久草 | 国产在视频线精品视频 | 全国最大成人免费视频 | 日日射天天干 | 欧美精品一本久久男人的天堂 | 国产成人精品999视频 | 琪琪宅男午夜视频 | 久久精品国产久精国产思思 | 日韩经典中文字幕 | 亚卅毛片| 无码人妻AⅤ一区二区三区 韩国a级黄色 | 成人一区在线视频 | 麻豆网站| 国产精久久一区二区三区 | 91免费污视频 | 日韩一区二区三 | 日本免费大片免费视频 | 亚洲色欲综合一区二区三区 | 日本同性老头 | 久草久草 |