[发明专利]具有精确垃圾收集报告的动态大小的局部有效
| 申请号: | 201780029685.4 | 申请日: | 2017-05-09 |
| 公开(公告)号: | CN109154908B | 公开(公告)日: | 2023-08-29 |
| 发明(设计)人: | D·C·赖顿;S·D·莫热;F·M·汉娜;P·F·索里施;J·科塔斯 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F9/445;G06F9/455;G06F8/41 |
| 代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 具有 精确 垃圾 收集 报告 动态 大小 局部 | ||
1.一种计算设备,包括:
至少一个处理器:
存储器,所述存储器被连接到所述至少一个处理器;其中所述至少一个处理器被配置为:
通过执行动作来执行适用于对应通用源代码的每个实例化中所有数据类型的变量和/或对象的全局共享的通用代码的单个实例,以:
在堆栈而不是垃圾收集堆上为局部数据分配空间;
将局部数据存储在所述堆栈上,其中所述局部数据的大小可变;
在所述堆栈上存储已存储的所述局部数据的描述;以及
向后续过程提供精确的垃圾收集GC报告信息,其中所述精确的GC报告信息精确地指示所述堆栈中何处的所述局部数据将被回收;
还包括至少一个程序模块:所述至少一个程序模块基于至少一个通用上下文参数来动态地确定要为局部数据分配的堆栈帧的大小,所述至少一个通用上下文参数包括与所述局部数据相关联的类型描述。
2.根据权利要求1所述的计算设备,其中所述至少一个处理器还被配置为:
在运行时接收所述至少一个通用上下文参数。
3.根据权利要求1所述的计算设备,其中所述至少一个处理器还被配置为:
在运行时接收所述至少一个通用上下文参数,要被创建的所述堆栈帧的所述大小根据所述至少一个通用上下文参数被确定。
4.根据权利要求1所述的计算设备,其中所述至少一个处理器还被配置为:
告知后续过程哪里能够找到用于垃圾收集的所述局部数据。
5.根据权利要求1所述的计算设备,其中所述至少一个处理器还被配置为:
在所述堆栈上为与所述全局共享的通用代码的特定执行相关联的局部数据分配空间。
6.根据权利要求1所述的计算设备,其中所分配的堆栈帧的大小根据所述局部数据的大小而变化。
7.一种用于垃圾收集报告的方法,包括:
由计算设备的处理器通过执行动作来执行适用于对应通用源代码的每个实例化中所有数据类型的变量和/或对象的全局共享的通用代码的单个实例,以:
在堆栈而不是垃圾收集堆上为局部数据分配空间,
将局部数据存储在所述堆栈上,其中所述局部数据的大小可变,
在所述堆栈上存储已存储的所述局部数据的描述,以及
向后续过程提供精确的垃圾收集GC报告信息,其中所述精确的GC报告信息精确地指示所述堆栈中何处的所述局部数据将被回收;
由所述计算设备的至少一个程序模块基于至少一个通用上下文参数来动态地确定要为局部数据分配的堆栈帧的大小,所述至少一个通用上下文参数包括与所述局部数据相关联的类型描述。
8.根据权利要求7所述的方法,还包括:
在运行时接收所述至少一个通用上下文参数。
9.根据权利要求7所述的方法,还包括:
在运行时接收所述至少一个通用上下文参数,要被创建的所述堆栈帧的所述大小根据所述至少一个通用上下文参数被确定。
10.根据权利要求7所述的方法,还包括:
告知后续过程哪里能够找到用于垃圾收集的所述局部数据。
11.根据权利要求7所述的方法,还包括:
在所述堆栈上为与所述全局共享的通用代码的特定执行相关联的局部数据分配空间。
12.根据权利要求7所述的方法,其中所分配的堆栈帧的大小根据所述局部数据的大小而变化。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780029685.4/1.html,转载请声明来源钻瓜专利网。





