基于arena的存储器管理制造技术

技术编号:32322790 阅读:18 留言:0更新日期:2022-02-16 18:28
公开了基于arena的存储器管理系统。响应于用于回收存储被分配在arena中的对象组的存储器的调用,被分配在arena中的对象组中的不使用的对象被收集(302)。多个对象中的活动对象从arena被复制到堆(304)。象从arena被复制到堆(304)。象从arena被复制到堆(304)。

【技术实现步骤摘要】
【国外来华专利技术】基于arena的存储器管理

技术介绍

[0001]计算机系统中两种常见的存储器管理技术包括手动存储器管理和垃圾收集。手动存储器管理包括程序员显式的存储器分配和解除分配,诸如使用C编程语言标准库中的malloc()和free()函数或C++编程语言中的new和delete运算符。垃圾收集是自动存储器管理形式,其试图检测计算机系统上的软件应用或程序不再使用的对象,并且恢复由计算机系统上运行的软件应用或程序不再使用的对象所占用的存储器。在非托管编程语言(诸如C++)中使用的另一存储器管理技术是基于arena的存储器分配。基于arena的存储器管理技术也被称为基于区域、基于区和基于组的存储器技术。在基于arena的存储器管理系统中,每个分配的对象被放置在程序指定的arena中。通过销毁arena并释放arena中所有分配的对象来回收存储器。

技术实现思路

[0002]提供本
技术实现思路
以在以下的描述中进一步描述的简化形式引入概念的选择。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
[0003]手动存储器管理技术依赖于程序员来确定哪个对象可以被安全删除以及对象是否可以被安全删除。如果对象被过早删除,程序的不同部分可能会尝试使用相同的存储器来用于不同的目的。如果对象被删除太晚或根本没有删除,程序中可能会发生存储器泄漏。垃圾收集技术可以解决手动存储器管理技术的危害,但可能比适当的手动存储器管理技术使用更多的存储器或更多的执行时间。通常,arenas在软件应用中是显式的并且被程序员控制,并且可以通过程序员显式的存储器分配和解除分配来提高程序性能,但不解决依赖于程序员来确定哪个对象可以被安全删除以及对象是否可以被安全删除的问题。
[0004]本公开针对托管(managed)环境,托管环境可以包括垃圾收集,但允许程序员表达对具有公共生命期的对象的分组,因为对象组中的许多对象在公共生命期结束时,可以在程序员的确定下被收集。此外,托管环境可以允许某些对象在公共生命期存活,这解决了程序员错误地过早删除对象的问题。对象可能用具有公共生命期的组来表达的场景可以包括服务器环境,在服务器环境中,对象组被分配在一起来服务于请求。一旦请求已被服务,许多(如果不是全部)对象就可以被收集。另一个场景可以包括编译器或语言翻译器。对象通常被分配在一起而形成翻译单元(诸如模块或方法)的中间表示。一旦翻译完成,许多(如果不是全部)中间表示就可以被收集。收集的对象可以被删除。
[0005]在一个示例中,本公开提供了基于arena的存储器管理系统。响应于用于回收存储被分配在arena中的对象的存储器的调用,arena中的不使用的对象被收集。arena中的活动对象从arena被复制到垃圾收集服务的堆。
附图说明
[0006]附图被包括来提供对实施例的进一步理解并且被并入并构成本公开的一部分。附
图图示了实施例并且与描述一起用于解释实施例的原理。其他实施例和实施例的许多预期优点将容易理解,因为它们通过参考以下描述变得更好理解。附图的元素不必相对于彼此成比例。相同的附图标记表示对应的相似部件。
[0007]图1是图示了计算设备的示例的框图,计算设备可以被配置在计算机网络中来提供例如云计算环境。
[0008]图2是图示了用于在图1的计算设备中执行的示例性基于arena的存储器管理框架的框图。
[0009]图3是图示了图2的基于arena的存储器管理框架的示例方法的框图。
具体实施方式
[0010]在以下的具体实施方式中,参考了形成其一部分的附图,并且其中通过示例的方式图示了可以实践本专利技术的特定实施例。应当理解,在不脱离本专利技术的范围的情况下,可以利用其他实施例并且可以进行结构或逻辑改变。以下描述因此不应被视为限制意义。应当理解,除非另外特别指出,否则本文描述的各种示例实施例的特征可以部分或全部彼此组合。
[0011]图1图示了示例性计算机系统,示例性计算机系统可以在操作环境中被采用,并且被用于托管或运行包括在一个或多个计算机可读存储介质上的计算机应用,计算机可读存储介质存储用于控制计算机系统(诸如计算设备)的计算机可执行指令来执行进程。计算机实现的进程的示例包括并发垃圾收集,并发垃圾收集可以被存储在计算机存储器中并且利用处理器来执行,以根据基于先前垃圾收集的动态可调参数来触发。
[0012]示例性计算机系统包括计算设备,诸如计算设备100。在基本硬件配置中,计算设备100通常包括具有一个或多个处理单元(即,处理器102)和存储器104的处理器系统。例如,处理单元可以包括在一个芯片上的两个或更多个处理核心或者两个或更多个处理器芯片。在一些示例中,计算设备还可以具有一个或多个附加处理或专用处理器(未示出),诸如用于在图形处理器单元上进行通用计算的图形处理器,以执行从处理器102卸载的处理功能。存储器104可以以分层结构来布置,并且可以包括一个或多个级别的高速缓存。根据计算设备的配置和类型,存储器104可以是易失性的(诸如随机存取存储器(RAM))、非易失性的(诸如只读存储器(ROM)、闪存等)或者两者的一些组合。计算设备100可以采用多种形式中的一个或多个。这样的形式包括平板电脑、个人计算机、工作站、服务器、手持设备、消费电子设备(诸如视频游戏控制台或数字录像机)等,并且可以是独立设备或者被配置为计算机网络的一部分。
[0013]计算设备100还可以具有附加的特征或功能。例如,计算设备100还可以包括附加存储装置。这样的存储装置可以是可移除和/或不可移除的,并且可以包括磁盘或光盘、固态存储器或闪存设备,诸如可可移除存储装置108和不可移除存储装置110。计算机存储介质包括以用于存储信息的任何合适的方法或技术实现的易失性和非易失性、可移除和不可移除介质,诸如计算机可读指令、数据结构、程序模块或其他数据。存储器104、可移除存储装置108和不可移除存储装置110均是计算机存储介质的示例。计算机存储介质包括RAM、ROM、EEPROM、闪存或其他存储器技术、CD

ROM、数字多功能光盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、通用串行总线(USB)闪存驱动装置、闪存卡
或其他闪存设备或者可以被用于存储所需信息并且可以由计算设备100访问的任何其他存储介质。因此,传播信号本身不符合条件作为存储介质。任何此类计算机存储介质均可以是计算设备100的一部分。
[0014]计算设备100通常包括一个或多个输入和/或输出连接,诸如USB连接、显示器端口、专有连接和连接到各种设备来向计算设备提供输入和输出的其他连接。输入设备112可以包括诸如键盘、定点设备(例如,鼠标、轨迹板)、指示笔、语音输入设备、触摸输入设备(例如,触摸屏)等的设备。输出设备111可以包括诸如显示器、扬声器、打印机等的设备。
[0015]计算设备100通常包括允许计算设备100与其他计算机/应用115通信的一个或多个通信连接114。示例通信本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种控制基于arena的存储器管理系统的方法,所述方法包括:响应于用于回收存储被分配在arena中的多个对象的存储器的调用,收集所述多个对象中的在所述arena中不使用的对象;以及将所述多个对象中的活动对象从所述arena复制到堆。2.根据权利要求1所述的方法,包括响应于所述调用而销毁所述arena。3.根据权利要求1所述的方法,其中所述堆由垃圾收集来服务。4.根据权利要求1所述的方法,其中复制活动对象还包括复制从所述活动对象引用的对象。5.根据权利要求1所述的方法,包括如果所述arena正被用于分配,则使用引用计数。6.一种基于arena的存储器管理系统,包括:存储器设备,用于存储一组指令;以及处理器,用于执行所述一组指令,以用于:响应于用于回收存储被分配在arena中的多个对象的存储器的调用,收集所述...

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

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

1