C# CLR核心机制

  之前一直搞不懂 垃圾回收机制  ,今天闲着没事,研究了一下,

 

~ 析构函数  主要是用来解释非托管资源,等着gc 的时候把非托管资源释放掉,系统自动回收, gc 回收的时候 clr 一定会抵用的,但是有延迟,

 

 

 

 

dispose( 也是释放非托管资源,主动释放 方法本身没有意义)  一般配合using的快捷方式  自使用者自己调用这个方法。

 析构函数释放是, 是放入一个队列里面 ,等待后续线程来释放资源。但不知道什么是调用

 

~SubmitMessage()
{

log($"折行{this.GetType().Name}的Dispose~");
}

 

析构被动释放 dispose 程序员可以主动释放

 gc的时候不会主动调用dispose方法  是程序员自己调用的方法。但是析构函数 会被调用  不过要等一会儿。

gc 的策略是 1 大对象 单独存放,链表式存储结构(有碎片)  2  分级处理 分0 、1、2 等级    内存紧密排列存储结构 

posted @ 2021-09-21 11:07  非著名架构师  阅读(84)  评论(1编辑  收藏  举报