成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.Net Framework垃圾收集具體算法詳解

開發 后端 算法
.Net Framework垃圾收集主要是在對象在、充滿時才會出現。我們可以便利所有的根,然后構造出一個包含所有可達對象的圖。

.Net Framework是由微軟提供的一款基于.NET開發的基礎環境。不過在這個編程平臺下,我們還可以使用其他各種語言來進行代碼的編寫,大大提高了程序員的開發效率。在這里就先來了解一下.Net Framework垃圾收集的相關算法。#t#

1..Net Framework垃圾收集只有在第0代對象充滿時才會出現。

2.每組應用程序都有一組根,一個根是一個存儲位置,其中包含著一個指向引用類型的內存指針。同時,當JIT編譯器編譯一個方法的IL代碼時,除產生本地CPU代碼外,JIT編譯器還會創建一個內部表,該表的每個條目包含一個方法的本地CPU指令的字節偏移范圍,及該范圍中的一組包含跟的內存地址。

3.當垃圾收集器開始執行時,它先假設應用程序中沒有一個根引用著托管堆中的對象。然后,遍歷所有的根,構造出一個包含所有可達對象的圖。任何不在該圖中的對象都將是應用程序不可訪問的對象 ,也是可以被執行垃圾收集的對象。

為什么.Net Framework垃圾收集的功能如此強大,而ANSI C++沒有采用它?

這是因為垃圾收集器必須能夠識別出應用程序的根,并且還要找到所有的對象指針。非托管C++允許我們進行類型轉換,而無從知道它真正引用的對象是什么。在CLR中,托管堆總能知道一個對象的實際類型,從而使其元數據信息來判斷一個對象的哪些成員引用著其他的對象。

任何封裝了非托管資源的類型,例如文件、網絡鏈接、套接字、互斥體等,都必須支持一種稱作終止化(Finalization)的操作。終止化操作允許一種資源在它所占用的內存被回收之前首先執行一些清理工作。

如果一個封裝了非托管資源的類型沒有定義Finalize方法,那么這些托管資源將得不到關閉,從而導致某種程度的資源泄露,直到進程結束,這些非托管資源才會被操作系統回收。

Finalize方法的問題在于我們不能確定它會在何時被調用,而且它不是公有方法,因此不能顯式調用它。

我們可以通過顯示調用Dispose方法來釋放對象所封裝的非托管資源。

調用Dispose或Close方法只是在一個確定的時刻對對象占用的非托管資源執行清理操作而已,但不會控制托管堆中對象所使用的內存的生存期。這意味著我們在調用過Dispose或Close方法之后,對象的內存仍然存在,只是對象被執行資源清理后,不能再成功執行某些方法而已。

C#的using語句:編譯時,編譯器會自動產生一個try塊和一個finally塊,在finally塊中,編譯器會產生代碼將變量轉型為一個Idisposable接口,并調用其上的Dispose方法。

但我們應謹慎使用C#的using語句,避免過早的執行了資源清理

垃圾收集器中代齡的工作機制:CLR的托管堆支持3個代齡,但初始化時,它會為這三代選擇3個閾值容量,選擇閾值容量是為了提高系統性能,閾值容量越大,垃圾收集執行的頻率也就越低。

另外,CLR垃圾收集器還有一個自調節的能力,會學習應用程序的行為,調節閾值容量,從而改變.Net Framework垃圾收集執行的頻率,提高系統性能。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-03-04 10:08:54

.Net垃圾收集

2009-06-15 16:14:40

Java垃圾收集算法GC

2010-03-04 14:33:11

.NET垃圾收集

2010-01-06 18:27:06

.Net Framew

2024-07-15 08:00:00

2010-01-06 16:45:42

.Net Framew

2010-01-05 09:35:07

.Net Framew

2010-01-05 16:20:46

.NET Framew

2010-01-05 18:09:07

.NET Framew

2009-07-09 09:28:19

.Net Micro

2012-01-09 16:00:56

2009-08-26 14:52:19

.NET Framew

2009-10-30 10:47:48

VB.NET垃圾收集器

2010-01-05 18:14:17

.NET Framew

2010-01-06 19:38:16

.NET Framew

2009-08-26 15:25:06

.NET Framew

2010-01-06 19:22:43

.NET Framew

2017-09-21 14:40:06

jvm算法收集器

2024-03-15 08:04:30

G1CMSJVM

2010-01-05 10:29:43

.NET Framew
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩三级在线观看 | 久久亚洲综合 | 成人午夜在线 | a级免费观看视频 | 羞羞视频在线网站观看 | 欧美中文字幕在线观看 | 国产精品成人一区二区三区 | 中文字幕乱码视频32 | 毛片区| 久久久久久艹 | 久草视 | 亚洲精品乱码久久久久久久久 | 国产一区二区av | 伊人爽 | 手机av在线 | 免费观看色 | 麻豆亚洲 | 免费精品久久久久久中文字幕 | 一区二区三区四区毛片 | 国产成人a亚洲精品 | 国产在线a视频 | 国产日韩一区二区 | 尤物在线| 日韩不卡一区二区 | 久久男人天堂 | 久久免费视频网 | 玖玖色在线视频 | 欧美国产精品 | 久久久久久久97 | 国产中文字幕在线观看 | 久久欧美高清二区三区 | 欧美一级在线观看 | 国产探花在线精品一区二区 | 久久久久国产精品 | 99精品网| 国产综合视频 | 欧美激情视频网站 | 一区欧美 | 欧洲毛片 | 91中文在线观看 | 高清免费av |