内存碎片整理方法及装置制造方法及图纸

技术编号:14383516 阅读:150 留言:0更新日期:2017-01-10 10:52
本发明专利技术提供了一种内存碎片整理方法及装置,通过本发明专利技术提供的将目标应用程序划分多个线程;在对目标应用程序进行碎片整理时,查询每个线程中价值信息线段树中移动价值最大的链表,链表携带移动价值相同的存储空间,价值信息线段树用于查询每个链表的移动价值,移动价值用于衡量碎片整理时存储空间对应的分配或释放的价值;在移动价值最大的链表中选取满足预设移动条件的存储空间;将存储空间移动至目标存储空间,解决了相关技术中由于缺少对NVM的内存碎片整理机制导致的碎片整理耗时的问题,进而达到了节约碎片整理时间,提升碎片整理效率的效果。

【技术实现步骤摘要】

本专利技术涉及通信领域,具体而言,涉及一种内存碎片整理方法及装置
技术介绍
随着云计算和大数据技术的迅猛发展,用户对存储系统的存储效率与存储质量的要求越来越高,即,需要具备容量大、密度高、能耗低、读写速度快等特点的存储系统,而以动态随机存取存储器(DynamicRandomAccessMemory,简称DRAM)与闪存Flash为代表的存储介质逐渐达到了技术瓶颈,例如容量和密度瓶颈。即,在相同面积下,DRAM与Flash的容量已经很难再增加;此外,在很多手持设备中,DRAM的能耗,特别是刷新能耗已经占据手持设备系统能耗的40%左右。而在一些数据中心中,DRAM的刷新能耗所带来的成本增加也是不容小觑的。对于Flash而言,虽然密度大于DRAM,但其读写速度远远慢于DRAM,且写入次数限制过小。这些不利因素,限制了Flash的未来应用。因此,长期以来研究人员都在不断地寻找满足要求的、新的存储介质。随着新型非易失存储器(Non-VolatileMemory,简称NVM)取得了不小的进步,它们的大容量、高密度、低能耗、读写速度快、磨损周期长等特点引起了学术界和工业界的广泛关注,使人们在云计算、大数据时代背景下,看到了存储系统性能提升的希望,在云计算和大数据背景下,很多应用程序都会要求自己的数据或数据结构被持久化存储。而持久化内存不仅可以满足这一要求,还可以减少存储栈层次,提高存储效率。应用程序使用持久化内存最有效的一种方式,即将持久化内存映射到进程地址空间中。如此一来,应用程序就可以直接读写持久化内存区域,极大地减少额外开销。但是同普通的堆空间管理类似,持久化堆也应有效组织堆中的空闲空间,并按照申请的空间大小分配给应用程序使用。由于需要分配的空间大小并不固定,所以持久化堆和普通堆一样,都面临内存碎片问题。由于NVM的非易失性,即使重启进程,碎片也不会消失。因为堆管理机制必须分配连续空间,因此若不对这些碎片进行整理,持久化堆很快就会出现即使有足够的空闲空间,也不能满足应用程序分配要求的情况。另一方面,目前很多应用都要求7*24方式工作。在这种场景下,是没有办法进行离线的碎片整理。由于相关堆空间的内存碎片整理机制,基本都是针对DRAM上建立的普通堆。这类机制的主要缺陷是在进行内存碎片整理时,对上层业务的性能影响较大。造成这种情况的主要原因有两点,一是全局扫描问题、二是引用更新问题。现有的碎片整理机制,在决定哪些对象需要移动到哪些地址上时,往往都要对已分配的对象或未分配的若干连续空间进行扫描,即进行全局扫描。另一方面,当某个对象移动结束之后,就需要更新之前指向该对象的其他所有对象,即进行引用更新。一些堆管理实现方案,是完全不支持引用更新的;而另一些堆管理方案,在进行引用更新时,则需要遍历所有对象或所有引用了被移动对象的对象。无论是全局扫描,还是引用更新,现有的堆内存碎片整理机制都比较耗时,对正在运行的上层业务影响较大,并不能满足在线内存碎片整理的要求。针对相关技术中由于缺少对NVM的内存碎片整理机制导致的碎片整理耗时的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术提供了一种内存碎片整理方法及装置,以至少解决相关技术中由于缺少对NVM的内存碎片整理机制导致的碎片整理耗时的问题。根据本专利技术的一个方面,提供了一种内存碎片整理方法,包括:将目标应用程序划分多个线程;在对目标应用程序进行碎片整理时,查询每个线程中价值信息线段树中移动价值最大的链表,链表携带移动价值相同的存储空间,价值信息线段树用于查询每个链表的移动价值,移动价值用于衡量碎片整理时存储空间对应的分配或释放的价值;在移动价值最大的链表中选取满足预设移动条件的存储空间;将存储空间移动至目标存储空间。进一步地,在移动价值最大的链表中选取满足预设移动条件的存储空间的步骤包括:依据目标应用程序对应的数据移动门限值,在移动价值最大的链表中选取移动数据量小于或等于数据移动门限值的存储空间;将移动数据量小于或等于数据移动门限值的存储空间作为满足预设移动条件的存储空间。进一步地,在移动价值最大的链表中选取移动数据量小于或等于数据移动门限值的存储空间的步骤包括:在移动价值最大的链表中选取最小移动数据量的存储空间,判断最小移动数据量是否小于或等于数据移动门限值;若最小移动数据量小于或等于数据移动门限值,则将最小移动数据量对应的存储空间作为满足预设移动条件的存储空间;若最小移动数据量大于数据移动门限值,则查询价值信息线段树中小于移动价值最大的链表,并在链表中依据数据移动门限值,匹配移动数据量小于或等于数据移动门限值的存储空间。进一步地,在预设函数包括:确切分配函数,和/或多对象分配函数的情况下,将存储空间移动至目标存储空间的步骤包括:依据确切分配函数在对象数据区中,匹配与存储空间大小相等的存储空间,并将存储空间内的数据移动至匹配得到的目标存储空间中;若对存储空间匹配对应存储空间后存在剩余存储空间,则依据多对象分配函数匹配与剩余存储空间大小相等的存储空间,并将将剩余存储空间中的数据移动至匹配得到的存储空间中。进一步地,在依据多对象分配函数匹配与剩余存储空间大小相等的存储空间的步骤包括:计算剩余存储空间的存储量;依据存储量通过调用多对象分配函数在对象数据区中,匹配与剩余存储空间大小相等的存储空间。根据本专利技术的另一方面,提供了一种内存碎片整理装置,包括:划分模块,用于将目标应用程序划分多个线程;查询模块,用于在对目标应用程序进行碎片整理时,查询每个线程中价值信息线段树中移动价值最大的链表,链表携带移动价值相同的存储空间,价值信息线段树用于查询每个链表的移动价值,移动价值用于衡量碎片整理时存储空间对应的分配或释放的价值;选取模块,用于在移动价值最大的链表中选取满足预设移动条件的存储空间;移动模块,用于将存储空间移动至目标存储空间。进一步地,选取模块包括:第一选取单元,用于依据目标应用程序对应的数据移动门限值,在移动价值最大的链表中选取移动数据量小于或等于数据移动门限值的存储空间;第二选取单元,用于将移动数据量小于或等于数据移动门限值的存储空间作为满足预设移动条件的存储空间。进一步地,第一选取单元包括:第一选取子单元,用于在移动价值最大的链表中选取最小移动数据量的存储空间,判断最小移动数据量是否小于或等于数据移动门限值;第二选取子单元,用于在最小移动数据量小于或等于数据移动门限值的情况下,将最小移动数据量对应的存储空间作为满足预设移动条件的存储空间;匹配子单元,用于若最小移动数据量大于数据移动门限值,则查询价值信息线段树中小于移动价值最大的链表,并在链表中依据数据移动门限值,匹配移动数据量小于或等于数据移动门限值的存储空间。进一步地,在预设函数包括:确切分配函数,和/或多对象分配函数的情况下,移动模块包括:空间匹配单元,用于依据确切分配函数在对象数据区中,匹配与存储空间大小相等的存储空间,并将存储空间内的数据移动至匹配得到的目标存储空间中;移动单元,用于在对存储空间匹配对应存储空间后存在剩余存储空间的情况下,依据多对象分配函数匹配与剩余存储空间大小相等的存储空间,并将将剩余存储空间中的数据移动至匹配得到的存储空间中。进一步地,移动单元包括:计算子单元,用本文档来自技高网
...
内存碎片整理方法及装置

【技术保护点】
一种内存碎片整理方法,其特征在于,包括:将目标应用程序划分多个线程;在对所述目标应用程序进行碎片整理时,查询每个线程中价值信息线段树中移动价值最大的链表,所述链表携带移动价值相同的存储空间,所述价值信息线段树用于查询每个链表的移动价值,所述移动价值用于衡量碎片整理时存储空间对应的分配或释放的价值;在所述移动价值最大的链表中选取满足预设移动条件的存储空间;将所述存储空间移动至目标存储空间。

【技术特征摘要】
1.一种内存碎片整理方法,其特征在于,包括:将目标应用程序划分多个线程;在对所述目标应用程序进行碎片整理时,查询每个线程中价值信息线段树中移动价值最大的链表,所述链表携带移动价值相同的存储空间,所述价值信息线段树用于查询每个链表的移动价值,所述移动价值用于衡量碎片整理时存储空间对应的分配或释放的价值;在所述移动价值最大的链表中选取满足预设移动条件的存储空间;将所述存储空间移动至目标存储空间。2.根据权利要求1所述的方法,其特征在于,所述在所述移动价值最大的链表中选取满足预设移动条件的存储空间的步骤包括:依据所述目标应用程序对应的数据移动门限值,在所述移动价值最大的链表中选取移动数据量小于或等于所述数据移动门限值的存储空间;将移动数据量小于或等于所述数据移动门限值的存储空间作为满足预设移动条件的存储空间。3.根据权利要求2所述的方法,其特征在于,在所述移动价值最大的链表中选取移动数据量小于或等于所述数据移动门限值的存储空间的步骤包括:在所述移动价值最大的链表中选取最小移动数据量的存储空间,判断所述最小移动数据量是否小于或等于所述数据移动门限值;若所述最小移动数据量小于或等于所述数据移动门限值,则将所述最小移动数据量对应的存储空间作为满足所述预设移动条件的存储空间;若所述最小移动数据量大于所述数据移动门限值,则查询所述价值信息线段树中小于所述移动价值最大的链表,并在所述链表中依据所述数据移动门限值,匹配移动数据量小于或等于所述数据移动门限值的存储空间。4.根据权利要求1所述的方法,其特征在于,在预设函数包括:确切分配函数,和/或多对象分配函数的情况下,将所述存储空间移动至目标存储空间的步骤包括:依据所述确切分配函数在对象数据区中,匹配与所述存储空间大小相等的存储空间,并将所述存储空间内的数据移动至匹配得到的目标存储空间中;若对所述存储空间匹配对应存储空间后存在剩余存储空间,则依据所述多对象分配函数匹配与所述剩余存储空间大小相等的存储空间,并将将所述剩余存储空间中的数据移动至匹配得到的存储空间中。5.根据权利要求4所述的方法,其特征在于,在依据所述多对象分配函数匹配与所述剩余存储空间大小相等的存储空间的步骤包括:计算所述剩余存储空间的存储量;依据所述存储量通过调用所述多对象分配函数在所述对象数据区中,匹配与所述剩余存储空间大小相等的存储空间。6.一种内存碎片...

【专利技术属性】
技术研发人员:李林熊先奎葛聪
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

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

1