【1】基于代的垃圾回收
频繁回收第0代,不怎么使用第1代, (一共有3代。0-2)
【2】大对象和小对象
大于约80MB的数据,称为大对象。常见的比如 大字符串,比如XML,json 或者用于IO操作的字节数组(比如从文件或网络将字节读入缓冲区以便处理)
【3】强制手动释放(不推荐)
collect
finalize(用来释放本机资源,文件,网络连接,套接字,互斥体)
dispose 写文件io时候,微软强调要手动释放,显式调用Dispose
--------------------------------------------------------------------------------------------------------------------------------------
需要明确一下 C# 程序(或者说 .NET)中的资源。简单的说来,C# 中的每一个类型都代表一种资源,而资源又分为两类:
托管资源:由 CLR 管理分配和释放的资源,即由 CLR 里 new 出来的对象;
非托管资源:不受 CLR 管理的对象,Windows 内核对象,如文件、数据库连接、套接字、COM 对象等;
毫无例外地,如果我们的类型使用到了非托管资源,或者需要显式释放的托管资源,那么,就需要让类型继承接口 IDisposable。这相当于是告诉调用者,该类型是需要显式释放资源的,你需要调用我的 Dispose 方法。
---------------------
作者:walter lv
来源:CSDN
原文:https://blog.csdn.net/WPwalter/article/details/80820774
版权声明:本文为博主原创文章,转载请附上博文链接!
网友评论