[发明专利]用于减少引用计数开销的系统和方法在审
申请号: | 201880010299.5 | 申请日: | 2018-02-07 |
公开(公告)号: | CN110249303A | 公开(公告)日: | 2019-09-17 |
发明(设计)人: | 王海川;马林;郑若黄;杨学军 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 引用 线程 计数器 全局引用 引用计数器 计数技术 存储器 跟踪 关联 分配 更新 进程 | ||
本发明涉及引用计数技术。建立与锁关联的全局引用计数器以计数引用存储器中分配的对象的进程的一个或多个线程。然后,使用相应的本地引用计数器跟踪线程对所述对象的每个引用。每当所述一个或多个线程中的每个线程对所述对象的引用是初始引用或最终引用时,更新所述全局引用计数器。否则,本地计数器用于跟踪所述对象的本地引用计数。
相关申请案交叉申请
本发明要求2017年2月16日递交的发明名称为“用于减少引用计数开销的系统和方法”的第15/434,270号美国非临时专利申请案以及2018年2月7日递交的发明名称为“用于减少引用计数开销的系统和方法”、申请号为PCT/CN2018/075613的国际专利申请的在先申请优先权,该在先申请的内容以引入的方式并入本文中。
背景技术
存储器管理系统通常跟踪创建后的存储器对象,并在不再需要这些存储器对象时将其删除,从而使正在使用的存储器再次可用。这些系统也称为垃圾收集器,通常通过维护与每个存储器对象关联的引用计数来工作。例如,引用计数用于跟踪存储器中正在创建或分配并随后删除的对象。当线程(或进程或其它实体)访问或引用该存储器对象时,会增加所述引用计数。当所述线程删除或移除所述存储器对象时,会减少所述引用计数。当所述引用计数达到零时,假设所述存储器对象不再使用,所述存储器管理器可以释放所述存储器以供重复使用,从而减少存储器耗尽的可能性。
此外,计算系统通常有多个处理器,在这些处理器上可以分配给定的工作负载,以提高计算吞吐量。每个处理器都可以有一个关联的存储器,其运行速度比主存储器快。当多个线程在不同的处理器上执行并访问或共享公共存储器对象时,该对象的引用计数通常需要从一个存储器传输到另一存储器,这可能导致延迟增加和处理效率降低。当所述计算系统的大小随着并行执行的线程数的增加而增加时,所述存储器管理可能会导致发出的引用计数指令的数量增加,同时整体系统性能也会降低。
发明内容
在第一实施例中,提供了一种用于引用计数的设备,所述设备包括:包含指令的非瞬时性存储器;与所述存储器通信的一个或多个处理器,其中所述一个或多个处理器执行所述指令以进行以下操作,包括:建立与锁关联的全局引用计数器,以计数引用所述存储器中分配的对象的进程的一个或多个线程;所述线程中的每个线程使用相应的本地引用计数器跟踪所述线程对所述对象的每个引用;每当一个或多个线程中的每个线程对所述对象的引用是对所述对象的初始引用或对所述对象的最终引用时,更新所述全局引用计数器。
在根据所述第一实施例的第二实施例中,其中第一线程使用相应的本地引用计数器跟踪所述第一线程对所述对象的引用包括:确定所述线程的所述引用是否是对所述对象的初始引用;为响应确定对所述对象的引用是对所述对象的初始引用:所述更新包括增加所述全局引用计数器并使用零值初始化所述本地引用计数器;增加所述本地引用计数器,而不锁定所述本地引用计数器。
在根据所述第一至第二实施例中任一实施例的第三实施例中,其中第一线程使用相应的本地引用计数器跟踪所述第一线程对所述对象的引用包括:减少所述本地引用计数器,而不锁定所述本地引用计数器;确定所述本地引用计数器是否有零值;为响应确定所述本地引用计数器具有非零值,所述更新包括减少所述全局引用计数器;当所述全局引用计数器更新为零值时,从所述存储器释放所述对象。
在根据所述第一至第三实施例中任一实施例的第四实施例中,所述一个或多个线程中的第一线程对应于第一本地引用计数器,所述一个或多个线程中的第二线程对应于第二本地引用计数器,其中所述操作还包括:当所述第一线程引用所述对象时增加所述第一本地引用计数器,当所述第一线程不再引用所述对象时减少所述第一本地引用计数器;当所述第二线程引用所述对象时增加所述第二本地引用计数器,当所述第二线程不再引用所述对象时减少所述第二本地引用计数器;当所述第一本地计数器和所述第二本地计数器具有零值时,从所述存储器释放所述对象并释放与所述全局引用计数器关联的所述锁。
在根据所述第一至第四实施例中任一实施例的第五实施例中,所述对应的本地引用计数器使用无锁引用计数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880010299.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:在处理器核上同时执行多个程序
- 下一篇:电子设备的视觉智能管理