无心插柳,再次浅谈.net资源的回收
1、资源回收代价大,代码中慎用GC回收
楼猪:完全赞同。一直以来楼猪肤浅的认识就是,.net是自动回收机制,早晚它都会调用GC帮我们处理释放内存的。在平时的项目中楼猪从来没有写过用GC回收什么东西,但是看过其他人的一段服务端处理excel的代码中用了GC,第一感觉还是蛮恐怖也蛮高级的。现在想想,那段代码的GC显式回收的应该是非托管资源,估计是怕操作excel占用服务器资源过多,内存飙升,所以才手动启动GC回收的。
2、托管资源就交给系统(“系统”是CLR还是GC还是其他什么呢?)处理
楼猪:部分赞同。
(1)、如果是framework里的非托管的基础类库,那些有Close或者Dispose方法的类(比如数据库连接,流和文件的操作等等),通常楼猪都是不带思考的using一下就over了;其他没有实现IDisposable接口的类,在使用完了之后再让某个实例变量指向null空引用或者什么也不写就让GC自动回收。这个当然完全赞同。
(2)、对于一个自己设计封装完成某些用途的类,比如上文里的Sample4GC类,它里面包含了一个文本流对象,假如现在要在Sample4GC里写三个不同的读写文件的方法,难道我们有必要每次都在类的三个方法里面using一下或fs.Dispose一下或fs.Close;fs=null一下吗?为什么不放在一个公共的地方比如Dispose方法里处理呢?外部调用的时候,using一下然后调用需要使用的方法不是也很方便吗?所以自己设计封装的类,看具体使用情况,该手动及时回收的还是需要自己写点代码处理的(nc楼猪又装13了。虽然一直自命也是个明白人吧,而且确实曾经也写过几个继承自IDisposable接口的公共处理类,但是Dispose基本上都是空方法,没有手动实现过资源回收,请原谅楼猪偏执浅薄的理解,呵呵)。
3、非托管资源由.net显式释放。
楼猪:完全赞同。GC的自动回收设计主要是针对托管资源,非托管资源你不控制它去管,它也管不了啊。
再抛砖,欢迎来拍。
转载于:https://www.cnblogs.com/jeffwongishandsome/archive/2010/04/25/1719879.html
无心插柳,再次浅谈.net资源的回收相关推荐
- 无心插柳OR志在必得?阿里推“来往”的意图
近年来,阿里巴巴在外围的动作确实不少,投资新浪微博.投资陌陌,配合阿里自身的一些战略调整,让人觉得这家公司似乎正在经历一场前所未有的"蜕变".其实这也不难理解,在BAT三国演义中, ...
- 浅谈python的垃圾回收机制以及内存管理
背景介绍 Python语言默认采用的垃圾收集机制是『引用计数法 Reference Counting』,该算法最早George E. Collins在1960的时候首次提出,50年后的今天,该算法依然 ...
- 浅谈MaxCompute资源规划管理及评估
简介: 本文主要介绍如何进行MaxCompute存储资源和计算资源的评估及规划管理. 一.MaxCompute资源规划背景介绍 MaxCompute资源主要有两类:存储资源.计算资源(包含cpu和内存 ...
- Android偷偷进了PC村,Google是无心插柳还是扮猪吃虎?
Android瓜分手机操作系统市场几成定局,Google眉开眼笑的背后应该更是得意洋洋,因为一个更大的阴谋即将实现. 我们知道,Android的本质就是Linux+Java.别小看这两个难兄难弟,li ...
- 在计算机中 音乐被数字化了 被一,音乐课题:浅谈数字化资源在幼儿园音乐教学中的运用...
传统幼儿园音乐教学存在诸多弊端,影响了幼儿园音乐教育活动.数字化资源在幼教音乐教育活动中的应用,使在原先的教育活动设计理念的变化,同时,也给教师在组织和设计活动时,提供了更广阔的空间,从而提高了音乐活 ...
- 一个计算机爱好者的不完整回忆(四十五)无心插柳的收获
我做的第一个应用本来是在新浪先提交申请上线的,不过新浪的审核速度太慢,在腾讯虽然晚了几天开始提交,但却比新浪先上线好几天.在新浪上线后一直不愠不火,不过三天时间超过了1000个授权,使我可以申请新浪S ...
- JMSN 起步,无心插柳,反成荫
来今天随便看看JAVA的东西的,然后看到CSDN上有个MSN机器人梦工厂,就去看看. 为了学习JAVA,偶也看了点书,终于也懂点JAVA的语法了.看了一段代码,不知道rath.msnm.MSNMess ...
- 无心插柳——ZUN和“东方Project”对游戏女性角色设计的影响
本文首发于"青花会游戏百科"(公众号ID:QingHua_Game) 在国内ACG圈有一种说法,把"寒蝉""月姬""东方Proje ...
- 浅谈虚拟机的垃圾回收
最近在极客时间上的<深入拆解Java虚拟机>课堂上学习,所以记录下了学习的笔记,与及对其相关的内容进行思考和拓展. 1. 如何辨别一个对象是存是亡? 用来辨别的计算方法有两种: 引用计数法 ...
最新文章
- “数学不行,干啥也不行!”骨灰级程序员:其实你们都是瞎努力
- 基于C4.5神经网络集成
- 和我一起构建私有物联网云平台
- ESXi安装时遇到不识别的硬件的处理
- 黑马程序员vue前端基础教程-4个小时带你快速入门vue
- 上网账号口令怎么获取_如何获取自己路由器的上网账号和上网口令
- linux pt远程下载,Linux中使用Transmission下载BT/PT[zz]
- ( cf1249 )Codeforces Round #595 (Div. 3)部分题解
- matlab 单相整流电路,MATLAB的单相桥式整流电路研究
- 从平安保险出来后,我考察了大童、明亚、永达理,客观说说它们的不同
- hdu 2087 剪花布条 kmp小水
- SAS编程|ADAM阶段性小结
- HTML5 视频网站
- 软妹子之心,智能硬汉子们可懂?
- 雷石 扩展文件服务器,雷石发布KTV软硬件新品:智能手表可点歌
- 微信weui之actionSheet应用
- win11_中文包/中文输入法(微软拼音)设置/键盘/输入法移除win10启用单词输入法/基于英语语言包的美式键/半角切换设置开关
- 腾讯云数据库TDSQL-单机安装体验安装脚本分析
- 商城快递查询 (快递100)
- 什么是 API?电商API接口的用处是什么?