没有合适的资源?快使用搜索试试~ 我知道了~
NETFramework垃圾回收3.5Version分享.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 132 浏览量
2021-12-18
08:33:13
上传
评论
收藏 2.58MB PDF 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/65877274/0001-275f673ba87b1716eaf45bed14caa69c_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
27页
NETFramework垃圾回收3.5Version分享.pdf
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![dll](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/download_crawler_static/65877274/bg1.jpg)
垃圾回收
Framework 3.5 version
Author: Jerry Huang
![](https://csdnimg.cn/release/download_crawler_static/65877274/bg2.jpg)
1.
垃圾回收概述
2. Finalize
方法和析构函数
3.
弱引用
4.
被动回收
5.
滞后时间模式
6.
针对共享
WEB
宿主优化
7.
垃圾回收通知
8.
清理非托管资源
9.
参考
C#
析构函数
10.
参考
WeakReference
类
11.
参考 垃圾回收内部原理
![](https://csdnimg.cn/release/download_crawler_static/65877274/bg3.jpg)
.NET Framework 的垃圾回收器管理应用程序的内存分配和释放。 每次您使用 new 运算符创建对象
时,运行时都从托管堆为该对象分配内存。 只要托管堆中有地址空间可用, 运行时就会继续为新对
象分配空间。但是,内存不是无限大的。最终,垃圾回收器必须执行回收以释放一些内存。垃圾回
收器优化引擎根据正在进行的分配情况确定执行回收的最佳时间。 当垃圾回收器执行回收时, 它检
查托管堆中不再被应用程序使用的对象并执行必要的操作来回收它们占用的内存。
本节介绍了垃圾回收器如何自动管理应用程序中托管对象的内存分配和释放。 除此之外, 本节还介
绍了推荐的设计模式,以用来正确地清理应用程序创建的任何非托管资源。
说明:
在 .NET Framework 1.0 版中,公共语言运行时 (CLR) 具有一个用于大型对象堆的独立内存管
理器。在某些情况下,该内存管理器不将未使用的内存返回给操作系统,在少数情况下,它还
会使该内存不能垃圾回收。这样会由于虚拟地址空间碎片而导致内存分配失败。在 .NET
Framework 1.1 和 2.0 版中,大型对象堆由称为堆片段的连续内存区域组成,这些区域完全对
齐以使虚拟内存碎片减到最少。在垃圾回收过程中,从大型对象中回收的空间被合并起来并置
于自由列表中。只包含自由列表项的堆片段被释放,内存被返回给操作系统。对大型对象堆所
做的这些更改有效消除了由这种形式的虚拟地址空间碎片导致的内存分配故障。
重要说明:
在内存大于 2GB 的服务器中, 可能需要在 boot.ini 文件中指定 /3GB 开关, 以避免当内存仍
可供系统使用时出现明显的内存不足问题。
本节内容
Finalize 方法和析构函数
介绍 Finalize 方法和析构函数如何允 许对 象在垃圾回收器自 动回收 对象的内存之前 执
行必要的清理操作。
弱引用
介绍 允许应 用程序 访问对 象,同 时也允 许垃圾回收器收集 该对 象的功能。
被动回收
介绍 如何立即或在下一最佳 时间 回收 对象。
![](https://csdnimg.cn/release/download_crawler_static/65877274/bg4.jpg)
模式
介绍 可确定垃圾回收侵入性的模式。
针对 共享 Web 宿主 优化
介绍 在通 过承载若干个小型网站共享的服 务器上如何 优 化垃圾回收。
垃圾回收通知
介绍 如何确定完整垃圾回收何 时即将 发生以及何 时完成。
清理非托管 资源
介绍 推荐的清理非托管 资源的 设计 模式。
![](https://csdnimg.cn/release/download_crawler_static/65877274/bg5.jpg)
对于您的 应用程序 创 建的大多数 对象,可以依靠 .NET Framework 的垃圾回收器 隐 式地 执行所有必
要的内存管理任 务。但是, 在您 创建封装非托管 资源的 对象时,当您在 应用程序中使用完 这些非托
管资源之后, 您必 须显 式地 释 放它 们。最常 见的一 类 非托管 资源就是包装操作系 统资 源的 对 象,例
如文件、 窗口或网 络连 接。虽 然垃圾回收器可以跟踪封装非托管 资源的 对象的生存期, 但它不了解
具体如何清理 这些资 源。 对于这些类型的 对象, .NET Framework 提供 Object .Finalize 方法,它
允许对 象在垃圾回收器回收 该对 象使用的内存 时适当清理其非托管 资源。默认情况下,Finalize 方
法不 执行任何操作。 如果您要 让垃圾回收器在回收 对象的内存之前 对对 象执 行清理操作, 您必 须在
类中重写 Finalize 方法。
说明:
若要在 C# 中实现 Finalize 方法,您必须使用 析构函数语法 。在 .NET Framework 2.0 版中,
Visual C++ 为实现 Finalize 方法提供了自己的语法,详见 Destructors and Finalizers in
Visual C++ 中的介绍。在 .NET Framework 1.0 版和 1.1 版中, Visual C++ 与 C# 一样,也
对 Finalize 方法使用析构函数语法。
垃圾回收器使用名为 “终止队列” 的内部结构跟踪具有 Finalize 方法的对象。 每次您的应用程序
创建具有 Finalize 方法的对象时, 垃圾回收器都在终止队列中放置一个指向该对象的项。 托管堆
中所有需要在垃圾回收器回收其内存之前调用它们的终止代码的对象都在终止队列中含有项。
说明:
为 GC. KeepAlive 方法提供的代码示例演示攻击性垃圾回收如何会导致终结器在已回收的对
象的成员仍在执行时运行,以及如何使用 KeepAlive 方法来阻止这种情况的发生。
Finalize 方法不应引发异常,因为应用程序无法处理这些异常,而且这些异常会导致应用程序终
止。
实现 Finalize 方法或析构函数对性能可能会有负面影响,因此应避免不必要地使用它们。用
Finalize 方法回收对象使用的内存需要至少两次垃圾回收。当垃圾回收器执行回收时,它只回收
没有终结器的不可访问对象的内存。 这时, 它不能回收具有终结器的不可访问对象。 它改为将这些
剩余26页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
xhr131452007
- 粉丝: 7
- 资源: 14万+
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
C知道特权
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 51单片机2个I/O口扫描5个按键方案 附程序仿真
- Python 教程 — Python 3.10.6 文档.lnk
- 基于Springboot的广场舞团(有报告) Javaee项目,springboot项目
- C#-asp.net-003 学生成绩管理系统源码(含sql数据库)
- tensorflow-2.8.2-cp310-cp310-win-amd64.whl
- tensorflow-2.8.1-cp39-cp39-win-amd64.whl
- Thinkphp微信夹娃娃蓝色源码.zip
- 12V电源平面对DDR4信号的影响-林楷智.pdf
- 基于Cadence-All...PCB信号完整性分析与设计-巫玲.pdf
- tensorflow-gpu-2.8.2-cp310-cp310-win-amd64.whl
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)