[发明专利]多阶段垃圾收集器有效
| 申请号: | 201880009634.X | 申请日: | 2018-01-25 |
| 公开(公告)号: | CN110325969B | 公开(公告)日: | 2023-06-02 |
| 发明(设计)人: | 张毛妮·史蒂芬斯;P·H·杜苏德 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F12/02 | 分类号: | G06F12/02 |
| 代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 赵林琳 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 阶段 垃圾 收集 | ||
1.一种计算设备中的垃圾收集的方法,包括:
从包括堆大小增长阶段和堆大小稳定阶段的多个堆大小阶段确定堆大小阶段,从先前垃圾收集中的空闲空间的量确定所述堆大小阶段;
响应于所述堆大小阶段被确定为所述堆大小稳定阶段,应用堆稳定垃圾收集;以及
响应于所述堆大小阶段被确定为所述堆大小增长阶段,应用堆增长垃圾收集,所述堆稳定垃圾收集和所述堆增长垃圾收集基于动态可调参数而被触发,所述动态可调参数与来自封闭反馈环中的先前垃圾收集的空闲空间的所述量有关,在所述堆稳定垃圾收集触发时的空闲空间的量包括存储器空间的预选择的目标量和存储器空间的误差量。
2.根据权利要求1所述的方法,其中应用所述堆稳定垃圾收集和所述堆增长垃圾收集包括在所述计算设备中与转化器线程并发运行的专用线程中提供并发垃圾收集。
3.根据权利要求2所述的方法,其中所述堆稳定垃圾收集基于来自先前堆增长垃圾收集的动态可调参数而被触发。
4.根据权利要求3所述的方法,其中所述可调参数包括所述垃圾收集的、在垃圾收集触发时的空闲空间的量。
5.根据权利要求4所述的方法,其中目标的触发确定所述垃圾收集处于哪个阶段。
6.根据权利要求3所述的方法,其中在所述堆稳定垃圾收集触发时的空闲空间的所述量包括存储器空间的预选择的目标量和存储器空间的误差量。
7.根据权利要求6所述的方法,其中所述目标量和所述误差量是比率。
8.根据权利要求3所述的方法,其中所述堆稳定垃圾收集基于在先前垃圾的所述垃圾收集触发时的空闲空间的所述量乘以常数而被触发。
9.根据权利要求1所述的方法,其中所述堆大小阶段基于在先前垃圾收集的完成时的空闲空间量而被确定。
10.根据权利要求9所述的方法,其中如果在所述先前垃圾收集的所述完成时的空闲空间的所述量大于所选择的上阈值,则所述堆大小阶段被确定为所述堆大小稳定阶段。
11.根据权利要求10所述的方法,其中所述堆增长垃圾收集的目标包括大于所述上阈值的空闲空间量。
12.根据权利要求10所述的方法,其中如果在所述先前垃圾收集的所述完成时的空闲空间的所述量小于所选择的下阈值,则所述堆大小阶段被确定为所述堆大小增长阶段。
13.根据权利要求12所述的方法,其中所述堆稳定垃圾收集的目标包括小于所述下阈值的空闲空间量。
14.根据权利要求12所述的方法,其中所述下阈值小于所述上阈值。
15.一种用于回收存储器的系统,包括:
存储器设备,用于存储一组指令;以及
处理器,用于执行所述一组指令以:
从包括堆大小增长阶段和堆大小稳定阶段的多个堆大小阶段确定堆大小阶段,所述堆大小阶段从先前垃圾收集的空闲空间而被确定;
响应于所述堆大小阶段被确定为所述堆大小稳定阶段,应用堆稳定垃圾收集;以及
响应于所述堆大小阶段被确定为所述堆大小增长阶段,应用堆增长垃圾收集,所述堆稳定垃圾收集和所述堆增长垃圾收集基于动态可调参数而被触发,所述动态可调参数与来自封闭反馈环中的先前垃圾收集的存储器空间目标有关,在所述堆稳定垃圾收集触发时的空闲空间量包括存储器空间的预选择的目标量和存储器空间的误差量。
16.根据权利要求15所述的系统,其中所述堆稳定垃圾收集包括回收空闲空间的第一量的第一目标,并且所述堆增长垃圾收集包括回收空闲空间的第二量的第二目标。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880009634.X/1.html,转载请声明来源钻瓜专利网。





