[发明专利]管理在异构环境中的对象集合的技术有效
申请号: | 201210079353.6 | 申请日: | 2012-03-22 |
公开(公告)号: | CN102736917B | 公开(公告)日: | 2017-08-15 |
发明(设计)人: | G·普兰卡特 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 顾嘉运 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 管理 环境 中的 对象 集合 技术 | ||
技术领域
本申请涉及垃圾收集,特别是管理在异构环境中的对象集合的技术。
背景技术
许多编程语言提供了用于将不再使用的对象或其它软件组件从存储器中自动清除的各种存储器管理技术。这种形式的存储器管理有时被称为“垃圾收集”。有效的垃圾收集对于为软件的操作保留存储器资源且同时又不会对软件的执行产生不利影响来说是重要的。一些垃圾收集解决方案可能是低效的。其它解决方案不能保持线程安全性,而还有的其它方案不是可缩放的。本发明的改进正是针对这些和其他考虑事项而需要的。
发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
各种实施例通常涉及管理在异构环境中的一个或多个对象的集合。一些实施例尤其涉及以保持线程安全性的有效、可缩放的方式对一组对象执行被称为垃圾收集的特殊形式的资源管理。在一个实施例中,例如,一种技术可以包括创建受管代理,所述代理在存储器中创建受管对象和非受管对象。生成并维护节点集合,其中,节点包括弱引用,该弱引用包括受管对象和非受管对象。维护集合中的节点的计数。当该计数超出阈值时,遍历所述集合,并且当节点中的受管对象已经被收集时,对同一节点中的任意非受管对象执行垃圾收集操作。对其他实施例也予以描述并要求保护。
通过阅读下面的详细描述并参考相关联的附图,这些及其他特征和优点将变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。
附图说明
图1示出了一种在异构环境中的垃圾收集的系统的实施例。
图2示出了使用中的存储器的实施例。
图3示出垃圾收集序列的一实施例。
图4示出了垃圾收集的第一逻辑流程的一实施例。
图5示出第二逻辑流程的实施例。
图6示出了第三逻辑流程的一实施例。
图7示出计算体系结构的实施例。
图8示出通信体系结构的实施例。
具体实施方式
各种实施例涉及用于在异构环境中执行自动化的存储器管理或垃圾收集操作的存储器管理技术,其中,可以用超出一种的编程语言和/或超出一种的运行时环境来编写软件应用。例如,当应用使用由另一个实体编写的代码或较旧的老代码时,可以用超出一种的编程语言来编写该应用。从在本质上来说,一些编程语言在某些功能性或效率方面比其它语言更好,并且应用可以通过对一个应用内的不同功能使用不同的语言来利用一种编程语言的强项。
不同的编程语言不同地处理包括垃圾收集操作的存储器管理。垃圾收集操作通常是指当应用不再使用对象时对正用于保存应用对象的存储器进行清空、释放或解除分配的实践。垃圾收集操作可以防止诸如存储器泄露等错误,其中由于没有销毁对象导致增加的存储器的量变得对应用不可用;以及悬空指针,其中,所指向的对象被销毁但指向该对象的一个或多个指针并没有被销毁并且随后被重新使用从而得到非预期结果。
一些语言可能不具有自动垃圾收集的能力,并且因此,程序员需要适当地对不再使用的对象解除存储器分配。一些作为手动垃圾收集语言出现的语言,例如C++,现在却提供了垃圾收集实现。这些语言提供了破坏器操作,该操作在销毁对象时自动释放该对象所使用的存储器资源。具有垃圾收集环境的一些语言,例如C#和Java可以使用终结器。终结器类似于破坏器那样操作,但是当对象被销毁时并不被显性调用。取而代之的是,当内部垃圾收集系统释放对象时可以调用终结器。程序员根本不能对何时调用终结器或是否调用终结器进行控制。终结器还具有下述限制:仅在一个线程中操作和对垃圾收集之后持久存储的对象不起作用。为了克服终结器的一些缺陷,例如C#的一些语言可以使用处置模式,它提供了一种释放由对象使用的资源的方法。处置方法通常必须在代码中由使用该对象的客户机在该客户机完成该对象时手动地被调用。还有其它语言使用引用计数,其中每次由另一个对象引用对象时递增计数,而当引用其的对象释放它时减少计数。当引用计数达到零时,可以销毁对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210079353.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种穿刺引流针管
- 下一篇:一种治疗人流后阴道出血症的中药汤剂