闭环垃圾收集器制造技术

技术编号:27229459 阅读:18 留言:0更新日期:2021-02-04 11:54
公开了用于垃圾收集的系统和方法。在内部闭合反馈环中,基于空闲列表和选定量的空闲空间来触发垃圾收集。在外部反馈环中,空闲列表根据选定存储器负载和如根据垃圾收集而生成的当前存储器负载来确定。的当前存储器负载来确定。的当前存储器负载来确定。

【技术实现步骤摘要】
【国外来华专利技术】闭环垃圾收集器

技术介绍

[0001]垃圾收集是计算系统中的自动存储器管理的一种形式。垃圾收集器试图检测不再被计算机系统上的软件应用或程序使用的对象并恢复由不再被计算系统上运行的软件应用或程序使用的对象占用的存储器。在一个示例中,垃圾收集可以与人工存储器管理进行对比,在人工存储器管理中,程序员指定要解除分配的对象并返回到存储器系统。存储器管理,包括垃圾收集,可以影响计算设备上运行的软件应用的性能。
[0002]许多编程语言包括垃圾收集。在一些编程语言(诸如C#、Java、D、Go以及许多脚本语言)中,垃圾收集可以被包括作为语言规范的部分。另外,诸如C和C++的一些语言被设计用于人工存储器管理但是包括垃圾收集的实现。另外,诸如C++通用语言基础架构(C++/CLI)的一些语言通过针对收集的对象和人工管理的对象使用单独的存储器片段而允许垃圾收集和人工存储器管理两者共存于相同应用中。垃圾收集常常被集成到语言编译器和运行时系统中。

技术实现思路

[0003]提供本
技术实现思路
从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本
技术实现思路
不旨在确定要求保护的主题的关键特征或必要特征,也不旨在用于限制要求保护的主题的范围。
[0004]公开了应用垃圾收集以控制选定量的存储器负载并维持选定量的空闲列表的系统和方法。系统常常指定用于运行应用的可用存储器的工作集限制(working set limits),其可以包括关于堆大小和软件容器的工作集限制。为了维持所指定的存储器负载,可用存储器的量可以基于垃圾收集正在如何被使用来调整。当存储器负载被维持时,空闲列表的量被确定。闭环反馈控制可以被应用以确定虚拟空闲空间。不是使虚拟空闲空间具体化,其被提供到闭环反馈控制以确定空闲列表的量。这提供控制物理存储器负载的灵活性而无需将对象引入物理存储器中。到闭合反馈环的输入是距目标的误差,诸如实际量对比设定点或目标量。在一个示例中,在内部闭合反馈环中,基于空闲列表和选定量的空闲空间来触发存储器分配中的垃圾收集。在外部闭合反馈环中,根据选定存储器负载和根据垃圾收集而被生成的当前存储器负载来确定空闲列表。在一个示例中,外部反馈环包括具有比例项和积分项的多项控制器。空闲列表可以被分布在多个存储器分配中的多个垃圾收集世代之间。外部环提供虚拟空闲空间列表的输出。内部环提供确定下一个垃圾收集何时被触发的分配的输出。垃圾收集可以基于可以对世代执行的分配的量而被触发,其基于从外部环提供的虚拟空闲空间来计算。
附图说明
[0005]附图被包含以提供对实施例的进一步理解并且被并入到本公开中并且构成本公开的一部分。附图图示了实施例并与说明书一起用于解释实施例的原理。将容易认识到其他实施例和实施例的意图的优点中的许多,因为它们通过参考下文描述变得更好理解。附
图的元件不必是相对于彼此按比例的。类似的附图标记指代对应的相似的部分。
[0006]图1是示出计算设备的示例的框图,该计算设备可以被配置在计算网络中以提供例如云计算环境。
[0007]图2是示出用于在图1的计算设备中执行的示例应用框架的框图。
[0008]图3是示出图2的垃圾收集器的示例方法的框图。
[0009]图4是示出根据图3的方法的示例系统的框图。
[0010]图5是示出根据图3的方法的多个世代垃圾收集器的示例系统的框图。
具体实施方式
[0011]在下文描述中,对附图进行引用,所述附图形成本文的一部分并且通过图示的方式在附图中示出了在其中可以实践本专利技术的特定实施例。应理解,可以在不脱离本专利技术的范围的情况下利用其它实施例并且可以进行结构或逻辑改变。因此,以下描述不应在限制性的意义上来理解。要理解,本文描述的各个示例实施例的特征可以部分地或整体地与彼此进行组合,除非另行特别指出。
[0012]图1示出示例性计算机系统,其可以被采用于操作环境中并且用于托管或运行一个或多个计算机可读存储介质上包含的计算机应用,计算机可读存储介质存储用于控制计算机系统(诸如计算设备)以执行过程的计算机可执行指令。计算机实现的过程的示例包括可以被存储在计算机存储器中并利用处理器执行以基于根据先前垃圾收集的动态可调谐参数被触发的并发垃圾收集。
[0013]示例性计算机系统包括计算设备,诸如计算设备100。在基本硬件配置中,计算设备100通常包括处理器系统,其具有一个或多个处理单元,即处理器102,以及存储器104。例如,处理单元可以包括在一个芯片上的两个或以上的处理核或两个或以上的处理器芯片。在一些示例中,计算设备还可以具有一个或多个额外处理或专用处理器(未示出),诸如用于图形处理器单元上的通用计算的图形处理器,以执行从处理器102卸载的处理功能。存储器104可以以层次结构布置并且可以包括一级或多级高速缓存。取决于计算设备的配置和类型,存储器104可以是易失性(诸如随机访问存储器(RAM))、非易失性(诸如只读存储器(ROM)、闪存等)、或二者的特定组合。计算设备100可以采取若干形式中的一种或多种。这样的形式包括平板电脑、个人计算机、工作站、服务器、手持设备、消费电子设备(诸如视频游戏控制台或数字视频记录仪)或其他,并且可以是独立设备或被配置为计算机网络的部分。
[0014]计算设备100还可以具有额外的特征或功能。例如,计算设备100还可以包括额外的存储装置。这样的存储装置可以是可移除的和/或不可移除的并且可以包括磁盘或光盘、固态存储器或闪速存储设备(诸如可移除存储装置108和不可移除存储装置110)。计算机存储介质包括以任何适当的方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性介质和非易失性介质、可移除介质和不可移除介质。存储器104、可移除存储装置108和不可移除存储装置110全部是计算机存储介质的示例。计算机存储介质包括RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备、通用串行总线(USB)闪速驱动器、闪存卡、或其他闪速存储设备、或者能够被用于存储期望信息并且能够由计算设备100访问的任何其他存储介质。因此,传播信号本身不被认为是存储介质。任何这样的计
算机存储介质可以是计算设备100的部分。
[0015]计算设备100通常包括一个或多个输入和/或输出连接,诸如USB连接、显示端口、专属连接、以及其他以连接到各种设备来向计算设备提供输入和输出。输入设备112可以包括诸如键盘、指点设备(例如,鼠标、跟踪板)、触笔、语音输入设备、触摸输入设备(例如,触摸屏)或其他的设备。输出设备111可以包括诸如显示器、扬声器、打印机等的设备。
[0016]计算设备100通常包括允许计算设备100与其他计算机/应用115进行通信的一个或多个通信连接114。示例通信连接可以包括以太网接口、无线接口、总线接口、存储区域网络接口、以及专属接口。通信连接可以用于将计算设备100耦合到计算机网络,其可以根据诸如拓扑、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算设备中的垃圾收集的方法,包括:在内部闭合反馈环中基于空闲列表和选定量的空闲空间来触发存储器分配中的垃圾收集;以及在外部闭合反馈环中基于选定存储器负载和从所述垃圾收集被生成的当前存储器负载来确定所述空闲列表。2.根据权利要求1所述的方法,其中所述选定存储器负载基于存储器负载比率、堆大小或基于容器限制。3.根据权利要求1所述的方法,其中所述空闲列表被分布在多个世代之间。4.根据权利要求3所述的方法,其中所述多个世代包括第一世代和第二世代,其中所述第二世代比所述第一世代更不频繁地被垃圾收集,并且其中所述空闲列表被分布在多个存储器分配中。5.根据权利要求1所述的方法,其中所述外部反馈环包括多项控制器反馈机制,所述多项控制器反馈机制包含比例项和积分项。6.一种回收存储器的系统,包括:存储器设备,用于存储指令集;以及处理器,用于执行所述指令集以:在内部闭合反馈环中基于空闲列表和选定量的空闲空间来触发存储器分配中的垃圾收集;以及在...

【专利技术属性】
技术研发人员:M
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1