[发明专利]具有精确垃圾收集报告的动态大小的局部有效
| 申请号: | 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 | 代理人: | 酆迅 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 具有 精确 垃圾 收集 报告 动态 大小 局部 | ||
生成全局共享的通用代码的实例。运行时参数使得能够确定可以在其上存储局部数据的堆栈帧的大小。可以将动态大小的局部存储在堆栈中,从而实现精确的垃圾收集报告。为每个代码段分配一个堆栈帧以简化GC报告。帧存储器区域中的报告区域包括局部的计数和该局部在堆栈中被找到的位置。
背景技术
在计算机科学领域中,垃圾收集(GC)是自动存储器管理的一种形式,其中垃圾收集器查找并回收由执行程序不再使用的数据所占用的存储器。垃圾收集会消耗大量的处理资源,并且因此对性能会产生重大的影响。垃圾收集的优点包括但不限于以下内容。程序员不需要明确地对存储器解除分配,从而消除或大大减少了与这些活动相关联的编程错误类型。
另外,利用GC可以避免某些类型的存储器泄漏。例如,当被无法访问的对象占用的存储器变得不可用时,会发生存储器泄漏。但是,因为由垃圾收集器确定要释放哪个存储器,所以会招致开销,这会导致性能下降或不均。通常需要附加的存储器来补偿GC开销,以便程序能够像在执行显式存储器管理时那样快地执行。在实际收集垃圾时可能会发生程序执行中的暂停。在执行某些任务时,这些暂停可能是不可接受的。
发明内容
可以在堆栈上而不是在GC堆上动态地分配用于局部数据的存储器空间,从而可以向垃圾收集器报告关于数据何时可以被垃圾收集以及数据位于何处的精确信息。精确GC意味着在GC堆上仅保留将来被实际使用的那些项。精确的GC报告意味着垃圾收集器被明确告知存储器中何时何地可以对局部数据进行垃圾收集。全局共享的通用代码的代码生成和运行时行为可以支持精确的GC报告,并可以提高应用的性能。
作为在GC堆上为局部数据分配存储器的替代,局部数据可以被存储在堆栈上。有关局部数据的附加信息也可以被存储在堆栈中,使得诸如但不限于GC报告过程之类的过程可以准确地执行GC报告。程序中的每个代码段(例如,函数、方法或子例程等)可以在堆栈上被指派其自己的帧(针对每个代码段一个帧)。在堆栈上分配的帧的大小可以基于与数据相关联的动态确定的类型描述而变化。可以将通用源代码编译为全局共享的通用代码的单个实例,其在运行时的行为取决于在运行时接收的通用上下文参数。全局共享的通用代码的单个实例可以被用于通用代码的所有可能实例化。可以在编译时生成全局共享的通用代码,从而消除了对于在运行时进行JIT编译的需要。在运行时指定的参数(例如,通用上下文参数)可以被用来影响全局共享的通用可执行代码的单个实例的行为。当被执行时,全局共享的通用可执行代码可以动态地确定局部数据所需的堆栈帧的大小,分配堆栈帧,在堆栈上存储局部数据并存储局部数据的描述,使得后续过程可以执行精确的GC报告。
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
在附图中:
图1a是表示本领域中已知的在编译时的通用代码共享的框图103;
图1b是表示本领域中已知的在运行时的通用代码共享的框图105;
图1c是表示根据本文所描述的主题的各方面的用于精确垃圾收集报告的在编译时全局共享的通用代码共享的示例的框图150;
图1d是表示根据本文所描述的主题的各方面的用于精确垃圾收集报告的在运行时全局共享的通用代码共享的示例的框图160;
图1e是表示根据本文所描述的主题的各方面的用于精确垃圾收集报告的编译时系统的示例的框图100;
图1f是表示根据本文所描述的主题的各方面的用于精确垃圾收集报告的运行时系统的示例的框图101;
图2a图示出了根据本文所描述的主题的各方面的用于精确垃圾收集报告的编译时方法的示例200;
图2b图示出了根据本文所描述的主题的各方面的用于精确垃圾收集报告的运行时方法的示例220;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780029685.4/2.html,转载请声明来源钻瓜专利网。





