电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

内存和资源管理

  • 资源ID:56902639       资源大小:231.50KB        全文页数:29页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

内存和资源管理

基于C#的 .NET Framework程序设计,第10章 数据流和文件 第11章 Internet访问 第12章 序列化 第13章 远程处理和XML Web Service 第14章 线程和异步编程 第15章 托管代码与非托管代码之间的互操作 第16章 使用Microsoft ADO.NET 访问数据 第17章 属性,第1章 Microsoft .NET Framework概述 第2章 托管执行环境的介绍 第3章 使用组件 第4章 部署与版本控制 第5章 通用类型系统 第6章 类型的使用 第7章 字符串、数组和集合 第8章 委托和事件 第9章 内存和资源管理,第9章 内存和资源管理,内存管理基础 非内存资源管理 优化垃圾回收,内存管理基础,开发者背景 人工内存管理和自动内存管理的比较 .NET Framework 类型的内存管理 简单垃圾回收,9.1 内存管理基础,开发者背景,COM 开发者手工实现引用计数和处理循环引用 C+ 开发者用 new 和 delete 操作符手工管理内存 Visual Basic 开发者习惯于自动内存管理,9.1.1 开发者背景,人工内存管理和自动内存管理的比较,手工内存管理 程序员管理内存 手工内存管理中普遍存在的问题 释放内存失败 对已释放内存的无效引用 .NET 运行时提供的自动内存管理 减少编程风险 消除潜在的错误源,9.1.2 人工内存管理和自动内存管理的比较,.NET Framework 类型的内存管理,值类型的实例使用栈上的内存 自动且安全地进行分配和释放 引用类型的实例使用托管堆上的内存 用 New 操作符创建 通过垃圾回收来释放,9.1.3 .NET Framework 类型的内存管理,简单垃圾回收,当系统内存空间不足以分配新的对象时,垃圾回收开始 简单垃圾回收算法用下列步骤 等待直到托管代码线程处于安全状态 创建一个可到达对象的图 把可访问对象移动到紧凑堆中,不可访问对象的内存被回收 更新所有对被移动对象的引用 对象间的循环引用被自动处理,9.1.4 简单垃圾回收,多媒体演示 简单垃圾回收,第9章 内存和资源管理,内存管理基础 非内存资源管理 优化垃圾回收,非内存资源管理,隐式资源管理 显式资源管理,9.2 非内存资源管理,隐式资源管理,终结 带终结器的垃圾回收 终结指导原则 控制垃圾回收,9.2.1 隐式资源管理,终结,隐式资源管理确保对象在将来不再有任何有效引用的时候可以完全清理它的资源 在 C# 中,终结代码由析构函数提供 如下代码利用 C# 析构函数来隐式关闭文件流,class Foo private System.IO.FileStream fs; /. public Foo() fs = new System.IO.FileStream( “bar“, FileMode.CreateNew); Foo() fs.Close(); ,9.2.1 隐式资源管理,终结 (续),下列事件发生时终结器将被调用 当第 0 代中(即最年轻、最近分配的对象)的可用内存不足以满足分配请求时发生第 0 代垃圾回收 代码显式调用系统 GC 的 Collect 静态方法 公共语言运行库卸载应用程序域 公共语言运行库被关闭,9.2.1 隐式资源管理,带终结器的垃圾回收,运行时维护一个具有终结器对象的列表 终止队列 当垃圾回收进程执行时 将不可访问而在终止队列中的引用放到准备终止队列中 垃圾回收线程压缩托管堆 更新所有到被移动对象的引用,9.2.1 隐式资源管理,带终结器的垃圾回收(续),当对象在终结时发生下列情况会使对象复活 终结代码中包含对其自身的引用 终结代码中包含对全局或静态变量的引用 终结线程在运行时会 执行准备终结对象的 Finalize 方法 将准备终结对象的引用从准备终止队列中去除 除非对象复活,这些对象被认为是废弃的 当垃圾回收器线程再次执行时,这些对象的内存可以被回收,9.2.1 隐式资源管理,多媒体演示 垃圾回收,终止指导原则,尽可能避免使用终结器,因为它会 降低系统性能 增加复杂性 延迟资源释放 如果确实需要终结器,则遵循下列原则 避免调用其他的对象 不要对线程的 ID作任何假设 带终结器的类应该 避免引用其他的对象,9.2.1 隐式资源管理,控制垃圾回收,强制垃圾回收 暂时挂起调用线程,直到终止队列为空 允许已终结而又复活对象的 终结器再次被调用 请求系统不调用终结器,void System.GC.Collect();,void System.GC.WaitForPendingFinalizers();,void System.GC.ReRegisterForFinalize(obj as object);,void System.GC.SuppressFinalize(obj as object);,9.2.1 隐式资源管理,显式资源管理,IDisposable 接口和 Dispose 方法 临时资源使用设计模式,9.2.2 显式资源管理,IDisposable 接口和 Dispose 方法,继承自 IDisposable 接口 实现 Dispose 方法 遵循 .NET Framework SDK 的设计模式,class ResourceWrapper : IDisposable /详细内容参考教材中的示例代码 ,9.2.2 显式资源管理,IDisposable 接口和 Dispose 方法(续),显式资源管理的一些指导原则 当 Dispose 方法被调用后应该调用 GC. SuppressFinalize 方法来提高性能 在整个继承体系内使用 Dispose 方法 不要假定 Dispose 方法已被调用,作为预防,应在终结器中也释放资源 任何时候当类所依赖的资源已被释放掉后,调用 Dispose 方法会抛出 ObjectDisposedException Dispose 方法可以被调用多次,9.2.2 显式资源管理,临时资源使用模式,临时资源使用 使用 Try 和 Finally 分配、使用并处理资源 使用 using 表达式 Try and Finally,void DoSomething() Resource r = new Resource(.); try r.Foo(); finally if (r != null) (IDisposable)r).Dispose(); ,using (Resource r1 = new Resource() r1.Foo(); ,9.2.2 显式资源管理,第9章 内存和资源管理,内存管理基础 非内存资源管理 优化垃圾回收,优化垃圾回收,弱引用 代 其他性能特性,9.3 优化垃圾回收,弱引用,弱引用允许在内存缺少的情况下对象被回收,9.3.1 弱引用,Object obj = new Object(); /创建强引用 WeakReference wr = new WeakReference(obj); obj = null; /去除强引用 / . obj = (Object) wr.Target; if (obj != null) /垃圾回收还没有发生 / . else /对象被回收, 引用为 null /. ,代,强制从0代到指定代进行垃圾回收 找出对象所属的代 返回系统支持的最大终结代数目,9.3.2 代,void System.GC.Collect(int Generation);,Int32 System.GC.GetGeneration(Object obj);,Int32 System.GC.MaxGeneration;,其他性能特性,性能监视 实时取得内存活动的信息 大对象堆 超过20000个字节的对象被分配到大对象堆中 大对象总是属于第2代,不会轻易被回收 多处理器支持 .NET 运行时提供了两个版本的垃圾回收器,服务器版垃圾回收器和单机版垃圾回收器,9.3.3 其他性能特性,实验 内存和资源管理,练习1 显式资源管理编程 练习2 隐式资源管理编程,回顾,描述垃圾回收器如何管理对象内存 通过终结器隐式管理非内存资源 显式管理非内存资源 用临时资源使用模式来编写代码 编程控制垃圾回收器的行为,学习完本章后,将能够:,

注意事项

本文(内存和资源管理)为本站会员(ji****72)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.