自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

.NET垃圾回收機(jī)制知識(shí)點(diǎn)整理

開發(fā) 后端
.NET垃圾回收機(jī)制可以很好的回收無用的托管資源,本文將把相關(guān)的九大知識(shí)點(diǎn)整理在一起供大家參考。

  1. .NET資源分托管資源和非托管資源,對(duì)于托管資源,.NET GC可以很好的回收無用的垃圾,而對(duì)于非托管(例如文件訪問,網(wǎng)絡(luò)訪問等)需要手動(dòng)清理垃圾(顯式釋放)。

  2. 非托管資源的釋放,.NET提供了兩種方式:

  1).Finalizer:寫法貌似C++的析構(gòu)函數(shù),本質(zhì)上卻相差甚遠(yuǎn)。Finalizer是對(duì)象被GC回收之前調(diào)用的終結(jié)器,初衷是在這里釋放非托管資源,但由于GC運(yùn)行時(shí)機(jī)的不確定性,通常會(huì)導(dǎo)致非托管資源釋放不及時(shí)。另外,F(xiàn)inalizer可能還會(huì)有意想不到的副作用,比如:被回收的對(duì)象已經(jīng)沒有被其他可用對(duì)象所引用,但Finalizer內(nèi)部卻把它重新變成可用,這就破壞了GC垃圾收集過程的原子性,增大了GC開銷。

  2).Dispose模式:C#提供using關(guān)鍵字支持Dispose Pattern進(jìn)行資源釋放。這樣能通過確定的方式釋放非托管資源,而且using結(jié)構(gòu)提供了異常安全性。所以,一般建議采用Dispose Pattern,并在Finalizer中輔以檢查,如果忘記顯式Dispose對(duì)象則在Finalizer中釋放資源。

  3. 托管資源的回收,判斷對(duì)象是否要被回收只要判定此對(duì)象或者其包含的子對(duì)象沒有任何引用是有效的

  4. GC的代價(jià):一則喪失了托管資源回收的實(shí)時(shí)性,二是沒有把C#托管資源和非托管資源的管理統(tǒng)一起來,造成概念割裂

  5. .NET類型分兩大類:引用類型、值類型,值類型分配在棧上,不需要GC回收;引用類型分配在堆上,它的釋放和回收需要GC來完成。一個(gè)引用類型的對(duì)象要被回收,需要要成為垃圾

  6. 系統(tǒng)為GC安排了獨(dú)立線程,對(duì)于內(nèi)存回收GC采取了一定的優(yōu)先算法進(jìn)行輪循回收內(nèi)存資源

  7. Generation(代),為了提高性能,越老的對(duì)象存活的越久。.NET中一般分為三代,G0,G1,G2;G0***被回收。

  8. 垃圾回收的步驟,標(biāo)記->整理->終結(jié)

  9. GC.Collect()一般要和GC.SuppressFinalize函數(shù)配合使用,使用GC.SuppressFinalize函數(shù),防止清理沖突。

原文鏈接:http://www.cnblogs.com/myangel/archive/2011/12/24/2300207.html

【編輯推薦】

  1. 淺析提高.NET垃圾回收性能的幾種方法
  2. 詳解.NET內(nèi)存管理機(jī)制與垃圾回收
  3. 簡(jiǎn)單描述C#垃圾回收
  4. C#多線程中l(wèi)ock的用法
  5. 用C#實(shí)現(xiàn)HTTP協(xié)議下的多線程文件傳輸
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-06-23 14:15:00

Java垃圾回收

2010-09-25 15:33:19

JVM垃圾回收

2017-03-03 09:26:48

PHP垃圾回收機(jī)制

2017-08-17 15:40:08

大數(shù)據(jù)Python垃圾回收機(jī)制

2016-10-31 19:22:24

JavaScript語法

2011-06-28 12:39:34

Java垃圾回收

2015-06-04 09:38:39

Java垃圾回收機(jī)

2017-06-12 17:38:32

Python垃圾回收引用

2021-11-05 15:23:20

JVM回收算法

2011-07-04 16:48:56

JAVA垃圾回收機(jī)制GC

2021-05-27 21:47:12

Python垃圾回收

2010-09-25 15:26:12

JVM垃圾回收

2010-09-16 15:10:24

JVM垃圾回收機(jī)制

2010-10-13 10:24:38

垃圾回收機(jī)制JVMJava

2021-12-07 08:01:33

Javascript 垃圾回收機(jī)制前端

2009-12-09 17:28:34

PHP垃圾回收機(jī)制

2010-09-26 16:42:04

JVM內(nèi)存組成JVM垃圾回收

2017-10-12 12:41:11

PHP圾回收機(jī)制變量容器

2023-02-28 07:56:07

V8內(nèi)存管理

2019-08-19 12:50:00

Go垃圾回收前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)