CN103914265A - 集群细粒度内存管理方法 - Google Patents
集群细粒度内存管理方法 Download PDFInfo
- Publication number
- CN103914265A CN103914265A CN201410141276.1A CN201410141276A CN103914265A CN 103914265 A CN103914265 A CN 103914265A CN 201410141276 A CN201410141276 A CN 201410141276A CN 103914265 A CN103914265 A CN 103914265A
- Authority
- CN
- China
- Prior art keywords
- page
- size
- overall
- group
- small object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种集群细粒度内存管理方法,包括下述步骤:步骤一.将内存分成两大类区域:第一类是全局共享区,负责尺寸大于等于尺寸阈值的大对象的分配和回收,第二类是每个线程独自的线程本地缓存,用于尺寸小于尺寸阈值的小对象的分配;线程本地缓存由多个块组组成,每个块组是一个内存对象的空闲链表,且一个块组内的块尺寸全部相等;不同块组之间,块组内的块尺寸关系采用阶梯式的等差关系;全局共享区包括小对象分配区和全局页缓存;步骤二.针对应用程序申请的内存进行内存分配,区分大小对象后分别进行对应的分配方式;步骤三.内存的释放;本方法兼顾大对象与小对象的分配与释放,特别适合多线程下的应用,内存利用率高。
Description
技术领域
本发明涉及计算机领域中分布式集群内的一种细粒度的内存管理方法,该方法主要针对分布式集群中申请的内存大小差异比较大的多线程的应用场景。
背景技术
随着互联网特别是移动互联网的快速普及,信息化程度不断提高,各式各样的交互式、个性化应用造成了互联网中数据的爆炸式增长。在此形势之下,有关海量数据存储的研究随之发展迅猛。应用系统的业务访问量与日俱增,大量频繁快速的数据访问请求对应用服务器和数据管理系统的要求越来越高。如何利用有限资源合理提高数据访问效率,成为提升系统性能的关键。在众多数据管理系统和缓存管理系统中,内存资源的高效利用和管理无疑是备受关注的焦点。内存的合理利用能够大幅减少对磁盘的IO请求,从而快速提升系统性能。当前市场上有多种比较流行的基于内存的数据管理或缓存管理系统,如国外开源的Redis、Memcached等,以及国内的Tair等非持久化存储层。这些系统均在内存的利用和优化方面大下功夫,但是仍然存在不少不足之处,比如利用率仍然不高、删除策略非最优、管理自治度不高、无法适用多种应用场景等。
内存管理方面,频繁使用默认的malloc和free函数,不但分配效率低下而且会产生大量的内存碎片。所以当下主流的数据管理系统和缓存管理系统都没有采用原生方式,而是提供了预分配内存的方案。该方案的基本原理借鉴于内存池,首先按照预先规定的大小,将预先分配的内存分割成指定长度的块组,每个组中包括若干相同长度的块,不同块组的块大小按照一个预先设定的增长因子构成等比关系。初始时,所有块组中的块均为空闲内存。在进行内存分配时,该方案会根据需求的内存大小,从空闲的块组中选择大小最接近的且大于所需内存的块来使用。如果该方案用于内存分配,则在用户释放内存的时候会将相应的块重新添加到空闲块组中;如果该方案用于缓存管理,则根据LRU(Least Recently Used,最近最少使用)算法进行缓存的过期淘汰和重复利用。一些系统在应用该方案时将增长因子设置成为2,即后一个块组的块大小为前一个块组的块大小的2倍。但这样块大小增长会很快,后面的块的差距会很大,容易造成空间浪费。此外,该方案在多线程的情况下必须采用加锁机制,影响内存的分配和回收效率。
综上,当前的内存管理方案主要存在以下问题
(1)内存的分配和回收速度。
(2)多线程下的性能表现。
(3)同时适用小对象与大对象的问题。
发明内容
本发明的目的在于克服现有技术中存在的不足,提供一种集群细粒度内存管理方法,提升内存的分配和回收效率,减少内存碎片的产生,提高内存利用率。本发明采用的技术方案是:
一种集群细粒度内存管理方法,包括下述步骤:
步骤一.将内存分成两大类区域:第一类是全局共享区,负责尺寸大于等于尺寸阈值的大对象的分配和回收;第二类是每个线程独自的线程本地缓存,用于尺寸小于尺寸阈值的小对象的分配;
线程本地缓存由多个块组组成,每个块组是一个内存对象的空闲链表,且一个块组内的块尺寸全部相等;不同块组之间,块组内的块尺寸关系采用阶梯式的等差关系;
全局共享区包括小对象分配区和全局页缓存;小对象分配区的结构与线程本地缓存相同,且有锁保护;全局页缓存用于处理大对象,且有锁保护;
全局页缓存由多个空闲链表组成,全局页缓存的空闲链表称作页面组;每个空闲链表包含多个元素,全局页缓存的空闲链表的元素是相同尺寸的连续的内存页;第1个页面组的元素的尺寸是1个内存页,第2个页面组的元素的尺寸是2个内存页,以此类推,第255个页面组的元素的尺寸是255个内存页,但第256个页面组的元素的尺寸是大于等于256个内存页。
进一步地,线程本地缓存中不同块组之间,块组内的块尺寸阶梯式的等差关系具体为:对较小的尺寸相差8个字节,略大一点的尺寸相差16个字节,然后相差32个字节,直至最大的尺寸相差间隔为256个字节。
进一步地,区分大对象和小对象的尺寸阈值为32KB。
步骤二.针对应用程序申请的内存进行内存分配,包括:
首先判断所申请的内存大小是否大于等于尺寸阈值;
若大于等于尺寸阈值,则进行步骤a;否则,进行步骤b;
a.大对象的分配:
a-1.将所需分配的尺寸,按4K的粒度向上圆整,设圆整后的大对象尺寸size=m*4K;m为正整数;
a-2.对全局共享区的全局页缓存加锁;
a-3.记p=max{2*m,256},判断页面组m的空闲链表是否为空;
若不空,则直接删除该链表的第一个元素并将其返回;
若为空,判断页面组p的空闲链表是否为空;
若不空,则删除该链表的第一个元素得到连续的p个内存页,将该连续的p个内存页拆分成连续的m个页面和(p-m)个页面,分别插入到页面组m和页面组(p-m)中,重复步骤a-3;
若为空,则直接向操作系统申请连续的m个内存页,将该连续的m个内存页添加到页面组m后,重复步骤a-3;
a-4.释放全局共享区的全局页缓存的锁;
b.小对象的分配,对应线程本地缓存;
b-1.将所需分配的尺寸向上圆整到最接近的块组内块的尺寸,设尺寸为size′,且相对应的块组为块组k;
b-2.判断块组k的空闲链表是否为空;
若不空,则删除该空闲链表的第一个元素并将其返回;
若为空,则需要对全局共享区进行操作;
对全局共享区的小对象分配区申请加锁;
判断全局共享区中小对象分配区的块组k是否为空;
若不空,则从该块组中转移若干元素到线程本地缓存的块组k中,释放全局共享区的小对象分配区的锁,重复步骤b-2;
若为空,则向全局页缓存申请new_size=max{size′*2,尺寸阈值}大小的大对象;申请成功后将该大对象拆分成若干个大小为size′的小对象,添加到全局共享区的小对象分配区的块组k中,释放全局共享区的小对象分配区的锁,重复步骤b-2。
步骤三.内存的释放;
首先判断释放的内存是否大于等于尺寸阈值;
若大于等于尺寸阈值,则进行步骤a′;否则,进行步骤b′;
a′.大对象的释放;
a′-1.申请对全局共享区中的全局页缓存加锁;
a′-2.判断全局页缓存的总空间是否超过设定空间阈值,若超过,直接将大对象释放给操作系统;否则,将待释放的内存添加回相对应的全局页缓存的页面组;
a′-3.对全局页缓存解锁;
b′.小对象的释放;
b′-1.判断线程本地缓存的空间占用是否超过设定的空间阈值;
b′-2.若未超过,则直接将小对象添加回相对应的块组中,结束释放流程;否则,继续下一步;
b′-3.超过阈值时,需要将小对象释放到全局共享区,具体如下所述:
申请对全局共享区的小对象分配区加锁;
将小对象添加到全局共享区中小对象分配区的对应块组中;
判断小对象分配区的总大小是否超过设定的阈值,若未超过,则直接释放锁,并结束释放流程;
超过阈值时,扫描小对象分配区的所有小对象并排序;
将所有能合并成一个大对象的小对象,从小对象分配区中删除,并合并成一个大对象;
将该大对象释放到全局页缓存当中;
释放小对象分配区的锁,结束释放流程。
本发明的优点在于:本方法兼顾大对象与小对象的分配与释放,特别适合多线程下的应用,内存利用率高。
附图说明
图1为本发明的全局共享区和线程本地缓存示意图。
图2为本发明的线程本地缓存结构示意图。
图3为本发明的全局共享区的全局页缓存结构示意图。
图4为本发明的流程图。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
本发明主要将内存分成两大类区域:第一类是全局共享区,主要负责大对象(尺寸大于等于32KB)的分配和回收;第二类是每个线程独自的线程本地缓存,对于小对象(尺寸小于32KB)的分配可以直接由线程本地缓存来满足。需要的话会将内存从全局共享区迁移到线程本地缓存中,同时定期的垃圾收集用于将内存从线程本地缓存迁移回全局共享区。两者关系如图1所示。
下面重点介绍一下:线程本地缓存的结构、全局共享区的结构以及对象的分配和释放流程。
1.线程本地缓存的结构,如图2所示。
尽管应用程序可以申请任意尺寸的小对象,但为便于管理,本发明采用预分配方式且只提供固定尺寸的空间。所提供的尺寸包括:32B,40B,48B,56B,64B,80B,96B,112B,128B,160B等。尺寸大小的关系采用阶梯式的等差关系,较小的尺寸间相差8个字节,略大一点的尺寸相差16个字节,然后相差32个字节,但最大的尺寸相差间隔限定为256个字节。这种方式可以有效避免固定增长因子带来的空间浪费问题。线程本地缓存由多个块组组成,每个块组是一个内存对象的空闲链表,且一个块组内的块尺寸全部相等。
2.全局共享区有两部分构成:一部分是类似线程本地缓存的小对象分配区,结构与线程本地缓存相同,但是有锁保护;另一部分是处理大对象分配的全局页缓存,同样有锁保护。
跟线程本地缓存一样,全局页缓存同样由一堆空闲链表组成,不过它的空闲链表的元素是相同尺寸的连续的内存页,且该空闲链表称作页面组。页面组1的元素的尺寸是1个内存页,页面组2的元素的尺寸是2个内存页,以此类推,页面组255的元素的尺寸是255个内存页,但页面组256的元素的尺寸则是大于等于256个内存页。具体结构如图3。
3.内存的分配。
应用程序的内存分配流程如下:
1)首先判断所申请的内存大小是否大于等于32K;
2)若大于等于32K,则认定分配的是大对象,进行步骤a;否则,认为是小对象的分配,进行步骤b;
a.大对象的分配:
a-1.将所需分配的尺寸,按4K的粒度向上圆整,设圆整后的大对象尺寸size=m*4K;m为正整数;
a-2.对全局共享区的全局页缓存加锁;
a-3.记p=max{2*m, 256},判断页面组m的空闲链表是否为空;
若不空,则直接删除该链表的第一个元素并将其返回;
若为空,判断页面组p的空闲链表是否为空;
若不空,则删除该链表的第一个元素得到连续的p个内存页,将该连续的p个内存页拆分成连续的m个页面和(p-m)个页面,分别插入到页面组m和页面组(p-m)中,重复步骤a-3;
若为空,则直接向操作系统申请连续的m个内存页,将该连续的m个内存页添加到页面组m后,重复步骤a-3;
a-4.释放全局共享区的全局页缓存的锁;
b.小对象的分配,对应线程本地缓存;
b-1.将所需分配的尺寸向上圆整到最接近的块组内块的尺寸,设尺寸为size′,且相对应的块组为块组k;
b-2.判断块组k的空闲链表是否为空;
若不空,则删除该空闲链表的第一个元素并将其返回;
若为空,则需要对全局共享区进行操作;
对全局共享区的小对象分配区申请加锁;
判断全局共享区中小对象分配区的块组k是否为空;
若不空,则从该块组中转移若干元素到线程本地缓存的块组k中,释放全局共享区的小对象分配区的锁,重复步骤b-2;
若为空,则向全局页缓存申请new_size=max{size′*2,尺寸阈值32K}大小的大对象;申请成功后将该大对象拆分成若干个大小为size′的小对象,添加到全局共享区的小对象分配区的块组k中,释放全局共享区的小对象分配区的锁,重复步骤b-2。
4.内存的释放。
内存释放的流程如下:
1)首先判断释放的内存是否大于等于32K;
2)若大于等于32K,则认为是大对象的释放,进行步骤a′;否则,认为是小对象的释放,走步骤b′;
a′.大对象的释放;
a′-1.申请对全局共享区中的全局页缓存加锁;
a′-2.判断全局页缓存的总空间是否超过设定空间阈值,若超过,直接将大对象释放给操作系统;否则,将待释放的内存添加回相对应的全局页缓存的页面组;
a′-3.对全局页缓存解锁;
b′.小对象的释放;
b′-1.判断线程本地缓存的空间占用是否超过设定的空间阈值;
b′-2.若未超过,则直接将小对象添加回相对应的块组中,结束释放流程;否则,继续下一步;
b′-3.超过阈值时,需要将小对象释放到全局共享区,具体如下所述:
申请对全局共享区的小对象分配区加锁;
将小对象添加到全局共享区中小对象分配区的对应块组中;
判断小对象分配区的总大小是否超过设定的阈值,若未超过,则直接释放锁,并结束释放流程;
超过阈值时,扫描小对象分配区的所有小对象并排序;
将所有能合并成一个大对象(大于等于32K)的小对象,从小对象分配区中删除,并合并成一个大对象;
将该大对象释放到全局页缓存当中;
释放小对象分配区的锁,结束释放流程。
Claims (5)
1. 一种集群细粒度内存管理方法,其特征在于,包括下述步骤:
步骤一.将内存分成两大类区域:第一类是全局共享区,负责尺寸大于等于尺寸阈值的大对象的分配和回收;第二类是每个线程独自的线程本地缓存,用于尺寸小于尺寸阈值的小对象的分配;
线程本地缓存由多个块组组成,每个块组是一个内存对象的空闲链表,且一个块组内的块尺寸全部相等;不同块组之间,块组内的块尺寸关系采用阶梯式的等差关系;
全局共享区包括小对象分配区和全局页缓存;小对象分配区的结构与线程本地缓存相同,且有锁保护;全局页缓存用于处理大对象,且有锁保护;
全局页缓存由多个空闲链表组成,全局页缓存的空闲链表称作页面组;每个空闲链表包含多个元素,全局页缓存的空闲链表的元素是相同尺寸的连续的内存页;第1个页面组的元素的尺寸是1个内存页,第2个页面组的元素的尺寸是2个内存页,以此类推,第255个页面组的元素的尺寸是255个内存页,但第256个页面组的元素的尺寸是大于等于256个内存页。
2.如权利要求1所述的集群细粒度内存管理方法,其特征在于:
线程本地缓存中不同块组之间,块组内的块尺寸阶梯式的等差关系具体为:对较小的尺寸相差8个字节,略大一点的尺寸相差16个字节,然后相差32个字节,直至最大的尺寸相差间隔为256个字节。
3.如权利要求1所述的集群细粒度内存管理方法,其特征在于:区分大对象和小对象的尺寸阈值为32KB。
4.如权利要求1、2或3所述的集群细粒度内存管理方法,其特征在于:步骤一之后,还包括下述步骤:
步骤二.针对应用程序申请的内存进行内存分配,包括:
首先判断所申请的内存大小是否大于等于尺寸阈值;
若大于等于尺寸阈值,则进行步骤a;否则,进行步骤b;
a.大对象的分配:
a-1.将所需分配的尺寸,按4K的粒度向上圆整,设圆整后的大对象尺寸size=m*4K;m为正整数;
a-2.对全局共享区的全局页缓存加锁;
a-3.记p=max{2*m,256},判断页面组m的空闲链表是否为空;
若不空,则直接删除该链表的第一个元素并将其返回;
若为空,判断页面组p的空闲链表是否为空;
若不空,则删除该链表的第一个元素得到连续的p个内存页,将该连续的p个内存页拆分成连续的m个页面和(p-m)个页面,分别插入到页面组m和页面组(p-m)中,重复步骤a-3;
若为空,则直接向操作系统申请连续的m个内存页,将该连续的m个内存页添加到页面组m后,重复步骤a-3;
a-4.释放全局共享区的全局页缓存的锁;
b.小对象的分配,对应线程本地缓存;
b-1.将所需分配的尺寸向上圆整到最接近的块组内块的尺寸,设尺寸为size′,且相对应的块组为块组k;
b-2.判断块组k的空闲链表是否为空;
若不空,则删除该空闲链表的第一个元素并将其返回;
若为空,则需要对全局共享区进行操作;
对全局共享区的小对象分配区申请加锁;
判断全局共享区中小对象分配区的块组k是否为空;
若不空,则从该块组中转移若干元素到线程本地缓存的块组k中,释放全局共享区的小对象分配区的锁,重复步骤b-2;
若为空,则向全局页缓存申请new_size=max{size′*2,尺寸阈值}大小的大对象;申请成功后将该大对象拆分成若干个大小为size′的小对象,添加到全局共享区的小对象分配区的块组k中,释放全局共享区的小对象分配区的锁,重复步骤b-2。
5.如权利要求4所述的集群细粒度内存管理方法,其特征在于:步骤二之后,还包括下述步骤:
步骤三.内存的释放;
首先判断释放的内存是否大于等于尺寸阈值;
若大于等于尺寸阈值,则进行步骤a′;否则,进行步骤b′;
a′.大对象的释放;
a′-1.申请对全局共享区中的全局页缓存加锁;
a′-2.判断全局页缓存的总空间是否超过设定空间阈值,若超过,直接将大对象释放给操作系统;否则,将待释放的内存添加回相对应的全局页缓存的页面组;
a′-3.对全局页缓存解锁;
b′.小对象的释放;
b′-1.判断线程本地缓存的空间占用是否超过设定的空间阈值;
b′-2.若未超过,则直接将小对象添加回相对应的块组中,结束释放流程;否则,继续下一步;
b′-3.超过阈值时,需要将小对象释放到全局共享区,具体如下所述:
申请对全局共享区的小对象分配区加锁;
将小对象添加到全局共享区中小对象分配区的对应块组中;
判断小对象分配区的总大小是否超过设定的阈值,若未超过,则直接释放锁,并结束释放流程;
超过阈值时,扫描小对象分配区的所有小对象并排序;
将所有能合并成一个大对象的小对象,从小对象分配区中删除,并合并成一个大对象;
将该大对象释放到全局页缓存当中;
释放小对象分配区的锁,结束释放流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410141276.1A CN103914265B (zh) | 2014-04-09 | 2014-04-09 | 集群细粒度内存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410141276.1A CN103914265B (zh) | 2014-04-09 | 2014-04-09 | 集群细粒度内存管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914265A true CN103914265A (zh) | 2014-07-09 |
CN103914265B CN103914265B (zh) | 2016-11-23 |
Family
ID=51039977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410141276.1A Active CN103914265B (zh) | 2014-04-09 | 2014-04-09 | 集群细粒度内存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103914265B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778264A (zh) * | 2015-04-22 | 2015-07-15 | 北京科电高技术公司 | 一种键值数据库的内存分配方法 |
WO2016078388A1 (zh) * | 2014-11-21 | 2016-05-26 | 中兴通讯股份有限公司 | 一种数据老化方法及装置 |
CN106844050A (zh) * | 2017-01-19 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种内存分配方法及装置 |
CN107515788A (zh) * | 2017-08-31 | 2017-12-26 | 郑州云海信息技术有限公司 | 一种内存分配的方法及装置 |
CN107741883A (zh) * | 2017-09-29 | 2018-02-27 | 武汉斗鱼网络科技有限公司 | 一种避免线程阻塞的方法、装置及计算机设备 |
CN107992270A (zh) * | 2017-12-15 | 2018-05-04 | 杭州宏杉科技股份有限公司 | 一种多控存储系统全局共享缓存的方法及装置 |
CN108108244A (zh) * | 2017-12-15 | 2018-06-01 | 中南大学 | 一种边坡强度折减系数多线程并行计算方法 |
CN109375985A (zh) * | 2018-09-06 | 2019-02-22 | 新华三技术有限公司成都分公司 | 内存动态管理方法及装置 |
CN110287127A (zh) * | 2019-05-14 | 2019-09-27 | 江苏大学 | 一种多粒度多核可扩展的非易失性内存管理方法及系统 |
CN110688345A (zh) * | 2019-09-26 | 2020-01-14 | 重庆大学 | 一种内存文件系统的多粒度结构化空间管理机制 |
CN111694673A (zh) * | 2020-06-17 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 内存处理方法、装置、电子设备及计算机可读存储介质 |
CN113849309A (zh) * | 2021-09-26 | 2021-12-28 | 北京元年科技股份有限公司 | 一种业务对象的内存分配方法以及装置 |
CN116501511A (zh) * | 2023-06-29 | 2023-07-28 | 恒生电子股份有限公司 | 内存尺寸处理方法、装置、电子设备及存储介质 |
US11954032B2 (en) | 2022-01-24 | 2024-04-09 | Realtek Singapore Private Limited | Apparatus for managing buffers and method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169759A (zh) * | 2007-11-08 | 2008-04-30 | Ut斯达康通讯有限公司 | 应用程序级的内存管理方法 |
CN101320351A (zh) * | 2008-06-27 | 2008-12-10 | 华中科技大学 | 内存的分配、清理和释放方法及内存管理的装置 |
CN102375780A (zh) * | 2011-10-25 | 2012-03-14 | 无锡城市云计算中心有限公司 | 一种分布式文件系统中元数据缓存管理的方法 |
-
2014
- 2014-04-09 CN CN201410141276.1A patent/CN103914265B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169759A (zh) * | 2007-11-08 | 2008-04-30 | Ut斯达康通讯有限公司 | 应用程序级的内存管理方法 |
CN101320351A (zh) * | 2008-06-27 | 2008-12-10 | 华中科技大学 | 内存的分配、清理和释放方法及内存管理的装置 |
CN102375780A (zh) * | 2011-10-25 | 2012-03-14 | 无锡城市云计算中心有限公司 | 一种分布式文件系统中元数据缓存管理的方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016078388A1 (zh) * | 2014-11-21 | 2016-05-26 | 中兴通讯股份有限公司 | 一种数据老化方法及装置 |
CN105653556A (zh) * | 2014-11-21 | 2016-06-08 | 中兴通讯股份有限公司 | 一种数据老化方法及装置 |
CN104778264A (zh) * | 2015-04-22 | 2015-07-15 | 北京科电高技术公司 | 一种键值数据库的内存分配方法 |
CN106844050A (zh) * | 2017-01-19 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种内存分配方法及装置 |
CN107515788A (zh) * | 2017-08-31 | 2017-12-26 | 郑州云海信息技术有限公司 | 一种内存分配的方法及装置 |
CN107741883A (zh) * | 2017-09-29 | 2018-02-27 | 武汉斗鱼网络科技有限公司 | 一种避免线程阻塞的方法、装置及计算机设备 |
CN107992270B (zh) * | 2017-12-15 | 2021-02-26 | 杭州宏杉科技股份有限公司 | 一种多控存储系统全局共享缓存的方法及装置 |
CN107992270A (zh) * | 2017-12-15 | 2018-05-04 | 杭州宏杉科技股份有限公司 | 一种多控存储系统全局共享缓存的方法及装置 |
CN108108244A (zh) * | 2017-12-15 | 2018-06-01 | 中南大学 | 一种边坡强度折减系数多线程并行计算方法 |
CN108108244B (zh) * | 2017-12-15 | 2021-09-28 | 中南大学 | 一种边坡强度折减系数多线程并行计算方法 |
CN109375985A (zh) * | 2018-09-06 | 2019-02-22 | 新华三技术有限公司成都分公司 | 内存动态管理方法及装置 |
CN110287127A (zh) * | 2019-05-14 | 2019-09-27 | 江苏大学 | 一种多粒度多核可扩展的非易失性内存管理方法及系统 |
CN110688345A (zh) * | 2019-09-26 | 2020-01-14 | 重庆大学 | 一种内存文件系统的多粒度结构化空间管理机制 |
CN111694673A (zh) * | 2020-06-17 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 内存处理方法、装置、电子设备及计算机可读存储介质 |
CN111694673B (zh) * | 2020-06-17 | 2023-05-16 | 抖音视界有限公司 | 内存处理方法、装置、电子设备及计算机可读存储介质 |
CN113849309A (zh) * | 2021-09-26 | 2021-12-28 | 北京元年科技股份有限公司 | 一种业务对象的内存分配方法以及装置 |
CN113849309B (zh) * | 2021-09-26 | 2022-09-16 | 北京元年科技股份有限公司 | 一种业务对象的内存分配方法以及装置 |
US11954032B2 (en) | 2022-01-24 | 2024-04-09 | Realtek Singapore Private Limited | Apparatus for managing buffers and method thereof |
CN116501511A (zh) * | 2023-06-29 | 2023-07-28 | 恒生电子股份有限公司 | 内存尺寸处理方法、装置、电子设备及存储介质 |
CN116501511B (zh) * | 2023-06-29 | 2023-09-15 | 恒生电子股份有限公司 | 内存尺寸处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103914265B (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914265A (zh) | 集群细粒度内存管理方法 | |
Stehle et al. | A memory bandwidth-efficient hybrid radix sort on gpus | |
CN103560963B (zh) | 一种OpenFlow流表存储空间压缩方法 | |
CN104731799B (zh) | 内存数据库管理装置 | |
CN102446139B (zh) | 一种数据存储方法及装置 | |
CN103914399B (zh) | 一种并行计算系统中的磁盘缓存方法及装置 | |
CN101320351A (zh) | 内存的分配、清理和释放方法及内存管理的装置 | |
CN104133661A (zh) | 基于列存储的多核并行哈希分区优化方法 | |
CN103425435B (zh) | 磁盘存储方法及磁盘存储系统 | |
CN102880555A (zh) | 面向实时系统的内存算法 | |
CN102024018A (zh) | 一种分布式文件系统中垃圾元数据的在线回收方法 | |
CN105975398A (zh) | 一种内存碎片管理方法 | |
CN112100233B (zh) | 基于禁忌搜索算法的航班时刻衔接方法及系统 | |
WO2015051685A1 (zh) | 一种任务调度方法、装置及系统 | |
CN103412825A (zh) | 一种内存释放方法及装置 | |
CN103455433A (zh) | 内存管理方法及系统 | |
CN106599091A (zh) | 基于键值存储的rdf图结构存储和索引方法 | |
CN105867998A (zh) | 一种虚拟机集群部署算法 | |
Lee et al. | M-CLOCK: Migration-optimized page replacement algorithm for hybrid DRAM and PCM memory architecture | |
CN103365784A (zh) | 内存回收与分配的方法及装置 | |
Zhan et al. | RangeKV: An efficient key-value store based on hybrid DRAM-NVM-SSD storage structure | |
CN108595259B (zh) | 一种基于全局管理的内存池管理方法 | |
CN1866218A (zh) | 软件系统的资源管理方法 | |
CN106294189A (zh) | 内存碎片整理方法及装置 | |
US11409646B2 (en) | Method for releasing memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |