.net笔记

一、垃圾回收

1.运行.NET应用程序时,程序创建出来的对象都会被CLR跟踪,

2.哪些对象还会被用到(存在引用关系);哪些对象不会再被用到(不存在引用关系),CLR都是有记录的。

3.CLR会整理不会再被用到的对象,在恰当的时机,按一定的规则销毁一部分对象,释放出这些对象所占用的内存。CLR把没用的对象转移到一起去,使内存连续,新分配的对象就在这块连续的内存上创建,这样做是为了减少内存碎片(CLR不会移动大对象)

4.GC只能释放托管资源,不能释放非托管资源(数据库链接、文件流等)

5.尽量不要调用GC.Collect()这样会破坏GC现有的执行策略

原文地址:https://www.cnblogs.com/ninestates/p/3147587.html