CN103455433A - 内存管理方法及*** - Google Patents
内存管理方法及*** Download PDFInfo
- Publication number
- CN103455433A CN103455433A CN2013103645174A CN201310364517A CN103455433A CN 103455433 A CN103455433 A CN 103455433A CN 2013103645174 A CN2013103645174 A CN 2013103645174A CN 201310364517 A CN201310364517 A CN 201310364517A CN 103455433 A CN103455433 A CN 103455433A
- Authority
- CN
- China
- Prior art keywords
- memory
- piece
- memory headroom
- management
- headroom
- 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
Images
Landscapes
- Memory System (AREA)
Abstract
本发明提供了一种内存管理方法和***,其包括步骤:在操作***启动后,预分配一个连续内存空间;将连续内存空间划分为供用户使用的用户内存空间块和对用户内存空间块进行管理的内存空间管理块,一个用户内存空间块对应一个内存空间管理块;建立内存空间管理器列表和已申请内存空间列表,分别放入指向每个内存空间管理块和每个用户内存空间块的指针;其中内存空间管理块的数据块指针指向对应的用户内存空间块,下一块指针指向下一个内存空间管理块,当前可分配内存空间管理块的指针指向当前可分配的内存空间管理块。本发明有效提高了申请内存空间时的效率,并增加***稳定性。
Description
技术领域
本发明涉及内存管理方法及***。
背景技术
内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。
因此,大量运行的程序需要经常使用内存空间。每个程序所需的内存空间必须通过向***内核申请而得到。但是,如果实时地频繁地申请内存空间将导致如下的问题:
第一,程序运行速度减慢。通常,操作***有一个记录空闲内存地址的链表。当***收到一个程序的内存空间申请时,会遍历该链表,寻找第一个空间大于所申请内存空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给这个程序。对于大多数***,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确地释放这个内存空间。然而,由于找到的堆结点的大小不一定正好等于所申请内存空间的大小,***会自动地将多余的那部分重新放入空闲链表中。因此,向***申请内存空间的操作比较复杂,并且申请内存需消耗的时间也远远大于对内存操作的时间。如果程序在运行过程中实时地频繁申请内存空间,将会导致程序效率低下。
第二,碎片内存问题严重。“碎片内存”指的是一个***中所有不可用的空闲内存。这些资源之所以仍然未被使用,是因为负责分配内存的分配器使这些内存无法使用。这一问题通常都会发生,原因在于空闲内存以小而不连续方式出现在不同的位置。如果程序运行过程中实时地申请内存空间,必然是这次需要多少内存空间就申请多少内存空间。由于同时运行的程序很多,可能就会存在多个程序同时在申请内存空间。如果内核按照页的方式来顺序分配内存空间,那么内存空间在刚刚开机时候大部分为空白可用状态。但是,随着运行时间的增长,所使用内存空间会慢慢的向后覆盖过去,前面使用完后释放掉的内存空间可能是小块的,但后续其他程序申请的内存空间比这个块大,那么这些小块的内存空间就分配不出去。因此,虽然例如***显示有1G的剩余内存空间,但此时如果有一个程序启动起来要一次性申请500MB的连续内存空间,可能也会提示内存空间不足,因此没有大于500MB的连续内存空间可以分配。显然,这实际上造成了内存空间浪费和程序执行效率的下降。一个不断产生内存碎片的***,不管产生的内存碎片多么小,只要时间足够长,就会将内存用完。这种情况在许多嵌入式***中,特别是在高可用性***中是不可接受的。
鉴于以上的种种原因,一个需要频繁使用大量内存空间的***应当对***申请得到的内存空间进行统一管理,并且将已经申请到的内存空间重复使用。并且,在***刚刚启动的时候,就预先分配好基本足够多的内存以供以后使用,并且,尽量减少内存分配的次数。
图1示出了当前较常用的一种内存分配技术。在内存块的使用过程中,主要涉及到下面两种操作:
(1)使用和放弃使用内存块。当***刚启动时,先申请一些内存空间块,并将全部的内存块指针或标识放入″可使用空间列表″,当***需要内存块时,将某个内存块标识从″可使用空间列表″中移除,放入″已使用空间列表″中。当***不需要某内存块时,将该内存块的标识再放回去。
(2)内存块扩容。当***中已经申请的内存块已经全部使用时,需要重新申请内存块以供使用。这时,需要首先申请一个比现有内存空间更大的内存空间。然后,将已经使用的块中的数据全部拷贝到新的块中。最后,释放旧的内存空间。
在图1中,上方的左右箭头示出了上述第一种情形,即当需要使用某内存空间块时,将某块指针或标识向右移动,从“可使用空间列表”移动到“已使用空间列表”;当不需要使用某内存空间块时,将某块指针或标识向左移动,从“已使用空间列表”移动到“可使用空间列表”。右侧的上下箭头示出了上述第二种情况,即当内存空间块不足时,将某块指针或标识向右移动,分三步完成扩容:(1)申请更大的内存块;(2)拷贝旧数据块的数据至新的更大内存块;(3)释放旧数据块。
上述现有技术存在如下的问题:
(1)当内存块不足时,需要重新申请一个更大的连续内存块。随着***的运行,可能更大的连续内存块越来越困难去申请。
(2)申请到更大内存块时,需要将旧内存块的数据拷贝到新内存块。这需要暂时中断对各个内存块的使用。有时,将内存块的数据拷贝到新地址,可能导致当前程序无法继续访问以前的数据地址,导致异常。
(3)频繁地重复使用,放弃使用内存块时,都需要将″可使用空间列表″,″已使用空间列表再次加锁打开,并从列表中找到该内存块,从列表中移除或放入。并且,频繁地打开列表时,将导致性能降低。
发明内容
本发明针对上述问题,提出了一种内存管理方法及***,其能克服上述现有技术的缺陷,有效提高申请内存空间时的效率,并增加***稳定性。
在一个方面,本发明提供了一种内存管理方法,其包括步骤:
在操作***启动后,预分配一个连续内存空间;
将连续内存空间划分为供用户使用的用户内存空间块和对用户内存空间块进行管理的内存空间管理块,一个用户内存空间块对应一个内存空间管理块;
建立内存空间管理器列表和已申请内存空间列表,分别放入指向每个内存空间管理块和每个用户内存空间块的指针;
其中内存空间管理块的数据块指针指向对应的用户内存空间块,下一块指针指向下一个内存空间管理块,当前可分配内存空间管理块的指针指向当前可分配的内存空间管理块。
在另一个方面,本发明还提供了一种内存管理***,其包括:
内存空间预分配模块,用于在操作***启动后预分配一个连续内存空间;
内存空间划分模块,用于将连续内存空间划分为供用户使用的用户内存空间块和对用户内存空间块进行管理的内存空间管理块一个用户内存空间块对应一个内存空间管理块;
列表建立模块,用于建立内存空间管理器列表和已申请内存空间列表,分别放入指向每个内存空间管理块和每个用户内存空间块的指针;
其中内存空间管理块的数据块指针指向对应的用户内存空间块,下一块指针指向下一个内存空间管理块,当前可分配内存空间管理块的指针指向当前可分配的内存空间管理块。
本发明通过优化对内存空间的分配管理,有效提高了申请内存空间时的效率,并增加了***的稳定性。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了现有技术的一种内存分配技术;
图2示出了根据本发明的内存空间的结构的示意图;
图3示出了根据本发明的内存空间初次分配的示意图;
图4示出了根据本发明的获取可用内存空间块的示意图;
图5示出了根据本发明的归还内存空间块的示意图;并且
图6示出了根据本发明的扩容内存空间块的示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
图2示出了根据本发明的内存空间的结构的示意图。如图2所示,将内存空间块分为两种:用户内存空间块(下文中,也称为内存空间块)和内存空间管理块。用户内存空间块是完全交给用户使用的内存空间,而内存空间管理块则是用于对用户内存空间块的管理。一个用户内存空间块对应一个内存空间管理块。这两种内存空间块都不是一次仅仅从***中申请一个块,而是从***中申请一个连续的内存空间,再将该连续的内存空间切割成一个一个块。在使用过程中,主要对这两种内存空间块进行操作。
内存空间管理块的结构为图2所示的NodeMgr结构体,其中NodeMgr->pData指向的是用户内存空间块,NodeMgr->pNext指向的是下一个内存空间管理块,以方便管理。也就是,其块结构可表达为:
Struct NodeMgr
{void*pData;//指向真实的数据块
void*pNext;//指向下一个管理块
}
如图2所示,内存空间可用两个列表来管理,一个是内存空间管理器列表,另一个是已申请内存空间列表。这两个列表都是用来管理已经申请的连续内存空间的指针,其目的就是为了在***停止运行时,释放已经申请的全部内存空间。
以下详细介绍利用这种内存空间的具体使用:
(一)初始分配:
当***刚刚启动时,将预先分配一定数量的内存空间,以供***处理业务时使用。预先分配的内存空间是一个连续的内存空间,只是将这个连续的内存空间分成一个一个的内存块。这些内存块将被分配为一定数量的内存空间管理块和相等数量的用户内存空间块,并分别放入相应的管理列表(即,内存空间管理器列表和已申请内存空间列表)中,代码如下:
void*pNodeMgrBlock=new NodeMgr[nNum];
void*pDataBlock=new Data[nNum];
vector<NodeMgr*>vecNodeMgrBlock;
vector<Data*>vecDataBlock;
vecNodeMgrBlock.push_back(pNodeMgrBlock);
vecDataBlock.push_back(pDataBlock);
同时,设置管理内存块的变量,形成的关系图如图3所示。图3清晰地展示了初始分配时的关系图,其中每个管理内存块的pData均指向已申请内存空间列表中的一个内存块,每个pNext均指向下一个管理内存块。最后一个管理内存块的pNext没有指向任何管理内存块(NULL),这说明该内存块是最后一个管理内存块。
在经过初始分配后,该内存就具备向外提供服务的能力。外部可以向该内存提出申请以获取一个可用的内存空间块。所以,该内存还需要保存一个变量,代表当前可分配的内存空间管理块的地址。如下变量:
NodeMgr*pCurAviableNode=&pNodeMgrBlock[0];
当初始分配时,为该变量赋予一个初始值,该值一般为第一个内存空间管理块的地址(零)。
pCurAviableNode=&pNodeMgrBlock[0];
(二)获取可用内存空间块:
当外部向该内存申请获取可用的内存空间块时,一般是把“当前可分配的内存空间管理块”返回给用户以供其使用。该过程所发生的关系转换如图4所示。
图4示出了连续获取2个内存空间块之后的关系图。此时,“当前可分配的内存空间管理块”已经指向pNodeMgrBlock[2](内存空间管理块编号从0开始顺序编号,因此pNodeMgrBlock[2]即为第3个内存空间管理块,参见图4)。在图4中,已被分配出去的前两个用户内存空间块标识为深色细密网格,并且管理它们的内存管理块的pData指针始终不变,仍然指向相应的用户内存空间块。但相应内存空间管理块的pNext指针则不再指向下一内存空间管理块,而是设置为空(NULL)。
因此,要获取一个可以内存空间块时,需要做如下几步:
(1)将“当前可分配的内存空间管理块”返回给用户以供其使用。
(2)将“当前可分配的内存空间管理块”的指针移动到下一个可用的内存空间管理块。
(3)将返回给用户的内存空间管理块的pNext设置为NULL。
(三)归还内存空间块:
当用户不需要使用已经获取到的内存空间时,需要将该内存空间归还。否则,该内存空间将不能被再次利用。否则的话,如果一直是申请内存空间而总是不归还内存空间块,将会耗尽已经申请的内存空间,并终将耗尽整个操作***的内存。
归还内存空间块的关系图如图5所示。如图5中的上半部所示,当归还第一个内存空间块时,将该内存空间块设置为最后一个内存空间块的下一个,即将最后一个内存空间块的pNext指针由NULL改变为指向第一个内存空间管理块,而第一个内存空间管理块的pData指针仍然指向第一个内存空间块。如此,第一个内存空间块就成为该内存空间块列表的最后一个。归还第二个内存空间块的操作类似,将第一个内存空间管理块的pNext指针由NULL改变为指向第二个内存空间管理块即可。但是,需要指出的是,在归还过程中,“当前可分配的内存空间管理块”是不受影响的。
(四)扩容内存空间块:
随着***的运行,可能最初申请的内存空间块已经全部分配出去,现在已经没有可利用的空闲内存空间块,此时,就需要再申请一个连续的内存空间作为新的内存空间块以供分配,即需要内存空间块扩容,如图6所示,第一列内存空间块已经用尽,需要扩容。稀疏点填充的方格表示“可使用空间块”,也就是新增加的“可用内存空间块”。此时,“当前可分配的内存空间管理块”指向新增加空间块的首地址,即第二列内存空间管理块中的第一个。新增加块的内存空间管理块同样按顺序连接起来,并且它们的pData均指向一个“可使用空间块”。如此,便实现了***内存的扩容。
(五)内存空间块的缩容:
***在运行过程中,经常会出现业务的高峰和低谷时期。当业务从低谷慢慢转化为高峰时,***将需要非常多的内存空间,这时候,***的内存消耗量巨大。但是,当业务的高峰时期已过,将不再需要那么多的内存空间,这时候,可以将不需要的内存空间释放一部分给操作***,以便操作***能分配给其他的程序,增加***的利用率。在释放空闲的内存空间时,需要注意以下几点:
(1)内存空间管理块和其对应的内存空间块必须一起释放。
(2)内存空间管理块和内存空间块分配时,都是分配的是一个连续的内存空间,再将该连续内存空间分成若干个块。所以,在释放时,必须待该连续内存空间的全部块均处于空闲状态时才可以释放。
(3)必须将连续的内存空间块的指针从相应的列表中移除。
由此,本发明提供了一种内存管理方法,其包括步骤:
在操作***启动后,预分配一个连续内存空间;
将连续内存空间划分为供用户使用的用户内存空间块和对用户内存空间块进行管理的内存空间管理块,一个用户内存空间块对应一个内存空间管理块;
建立内存空间管理器列表和已申请内存空间列表,分别放入指向每个内存空间管理块和每个用户内存空间块的指针;
其中内存空间管理块的数据块指针指向对应的用户内存空间块,下一块指针指向下一个内存空间管理块,当前可分配内存空间管理块的指针指向当前可分配的内存空间管理块。
这种内存管理方法还可包括在连续内存空间收到请求n个内存空间块的申请时,将当前可分配内存空间管理块的指针返回以供使用,并将当前可分配内存空间管理块的指针向后移动n个用户内存空间块。
这种内存管理方法还可包括在归还内存空间块时,将内存空间块设置为连续内存空间中的最后一个内存空间块的下一个。
这种内存管理方法还可包括在扩容内存空间块时,将当前可分配内存空间管理块的指针指向新增加内存空间块中的第一个,并且将新增加内存空间块按顺序连接起来。
这种内存管理方法还可包括在连续内存空间的全部块均处于空闲状态时,通过将指向全部块的指针从内存空间管理器列表和已申请内存空间列表中删除以释放连续内存空间。
本发明还提供了一种内存管理***,其包括:
内存空间预分配模块,用于在操作***启动后预分配一个连续内存空间;
内存空间划分模块,用于将连续内存空间划分为供用户使用的用户内存空间块和对用户内存空间块进行管理的内存空间管理块,一个用户内存空间块对应一个内存空间管理块;
列表建立模块,用于建立内存空间管理器列表和已申请内存空间列表,分别放入指向每个内存空间管理块和每个用户内存空间块的指针;
其中内存空间管理块的数据块指针指向对应的用户内存空间块,下一块指针指向下一个内存空间管理块,当前可分配内存空间管理块的指针指向当前可分配的内存空间管理块。
这种内存管理***还可包括内存空间分配模块,用于在连续内存空间收到请求n个内存空间块的申请时,将当前可分配内存空间管理块的指针返回以供使用,并将当前可分配内存空间管理块的指针向后移动n个用户内存空间块。
这种内存管理***还可包括内存空间归还模块,用于在归还内存空间块时,将内存空间块设置为连续内存空间中的最后一个内存空间块的下一个。
这种内存管理***还可包括内存空间扩容模块,用于在扩容内存空间块时,将当前可分配内存空间管理块的指针指向新增加内存空间块中的第一个,并且将新增加内存空间块按顺序连接起来。
这种内存管理***还可包括内存空间释放模块,用于在连续内存空间的全部块均处于空闲状态时,通过将指向全部块的指针从内存空间管理器列表和已申请内存空间列表中删除以释放连续内存空间。
通过以上内存管理方法和***,本发明解决了现在技术的解决方案中存在的几个问题,分别阐述如下:
(1)解决更大连续内存块申请困难的问题。在现有技术的解决方案中,在内存空间不够用时,需要重新申请一个更大的连续内存块。因此,随着***的运行,可能更大连续内存块越来越难申请到。而在本发明的解决方案中,不需要申请更大的连续的内存空间,申请一块较适合的或较小的内存空间也可以。从而增加了***的稳定性。该特性在需要非常大的连续内存空间时,尤其突出。比如申请一个500M的连续内存空间,往往如此大的内存空间并不总是那么容易申请,而且,***运行的软件越多,时间越长,越来越难以申请到。
(2)解决需要拷贝旧数据块的数据到新数据块中的问题。在现有技术的解决方案中,在申请到新的较大内存块后,需要将旧内存块的数据拷贝到新内存块,这就需要暂时中断对各个内存块的使用。有时,将内存块的数据拷贝到新地址,可能导致当前程序无法继续访问以前的数据地址,从而导致异常。而在本发明的解决方案中,不需要拷贝数据,既节省了时间,还不引入新的麻烦。
(3)解决了重复打开列表的问题。在现有技术的解决方案中,获取和放弃使用内存块时,都需要将“可使用空间列表”和“已使用空间列表”再次解锁打开,并从列表中找到该内存块,并从列表中移除或放入。此时,需要打开2个列表,如果是多线程中非常频繁地进行这些操作,打开列表将耗费大量时间。然而,在本发明的解决方案中,不需要打开列表,仅仅需要做几个简单的指针赋值动作即可,从而大大节约了时间。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制。因此,在不背离本发明的精神及其实质的情况下,本领域技术人员可作出各种改变、替换和变型。很显然,但这些改变、替换和变型都应涵盖于本发明权利要求的保护范围之内。
Claims (10)
1.一种内存管理方法,其特征在于包括步骤:
在操作***启动后,预分配一个连续内存空间;
将所述连续内存空间划分为供用户使用的用户内存空间块和对用户内存空间块进行管理的内存空间管理块,一个用户内存空间块对应一个内存空间管理块;
建立内存空间管理器列表和已申请内存空间列表,分别放入指向每个内存空间管理块和每个用户内存空间块的指针;
其中所述内存空间管理块的数据块指针指向对应的用户内存空间块,下一块指针指向下一个内存空间管理块,当前可分配内存空间管理块的指针指向当前可分配的内存空间管理块。
2.如权利要求1所述的内存管理方法,其特征在于,还包括在所述连续内存空间收到请求n个内存空间块的申请时,将当前可分配内存空间管理块的指针返回以供使用,并将当前可分配内存空间管理块的指针向后移动n个用户内存空间块。
3.如权利要求1所述的内存管理方法,其特征在于,还包括在归还内存空间块时,将所述内存空间块设置为所述连续内存空间中的最后一个内存空间块的下一个。
4.如权利要求1所述的内存管理方法,其特征在于,还包括在扩容内存空间块时,将当前可分配内存空间管理块的指针指向新增加内存空间块中的第一个,并且将新增加内存空间块按顺序连接起来。
5.如权利要求1所述的内存管理方法,其特征在于,还包括在所述连续内存空间的全部块均处于空闲状态时,通过将指向全部块的指针从所述内存空间管理器列表和已申请内存空间列表中删除以释放所述连续内存空间。
6.一种内存管理***,其特征在于包括:
内存空间预分配模块,用于在操作***启动后预分配一个连续内存空间;
内存空间划分模块,用于将所述连续内存空间划分为供用户使用的用户内存空间块和对用户内存空间块进行管理的内存空间管理块,一个用户内存空间块对应一个内存空间管理块;
列表建立模块,用于建立内存空间管理器列表和已申请内存空间列表,分别放入指向每个内存空间管理块和每个用户内存空间块的指针;
其中所述内存空间管理块的数据块指针指向对应的用户内存空间块,下一块指针指向下一个内存空间管理块,当前可分配内存空间管理块的指针指向当前可分配的内存空间管理块。
7.如权利要求6所述的内存管理***,其特征在于,还包括内存空间分配模块,用于在所述连续内存空间收到请求n个内存空间块的申请时,将当前可分配内存空间管理块的指针返回以供使用,并将当前可分配内存空间管理块的指针向后移动n个用户内存空间块。
8.如权利要求6所述的内存管理***,其特征在于,还包括内存空间归还模块,用于在归还内存空间块时,将所述内存空间块设置为所述连续内存空间中的最后一个内存空间块的下一个。
9.如权利要求6所述的内存管理***,其特征在于,还包括内存空间扩容模块,用于在扩容内存空间块时,将当前可分配内存空间管理块的指针指向新增加内存空间块中的第一个,并且将新增加内存空间块按顺序连接起来。
10.如权利要求6所述的内存管理***,其特征在于,还包括内存空间释放模块,用于在所述连续内存空间的全部块均处于空闲状态时,通过将指向全部块的指针从所述内存空间管理器列表和已申请内存空间列表中删除以释放所述连续内存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364517.4A CN103455433B (zh) | 2013-08-19 | 2013-08-19 | 内存管理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364517.4A CN103455433B (zh) | 2013-08-19 | 2013-08-19 | 内存管理方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103455433A true CN103455433A (zh) | 2013-12-18 |
CN103455433B CN103455433B (zh) | 2016-08-10 |
Family
ID=49737828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310364517.4A Active CN103455433B (zh) | 2013-08-19 | 2013-08-19 | 内存管理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103455433B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631930A (zh) * | 2013-12-06 | 2014-03-12 | 北京京东尚科信息技术有限公司 | 一种搜索引擎空间占用统计方法及*** |
CN103678172A (zh) * | 2013-12-25 | 2014-03-26 | Tcl集团股份有限公司 | 一种本地数据缓存管理方法及装置 |
CN103942150A (zh) * | 2014-04-01 | 2014-07-23 | 上海网达软件股份有限公司 | 一种用于实时流媒体传输***的内存管理方法 |
CN104268093A (zh) * | 2014-09-22 | 2015-01-07 | 可牛网络技术(北京)有限公司 | 内存分配方法及装置 |
CN105808219A (zh) * | 2014-12-29 | 2016-07-27 | ***通信集团公司 | 一种内存空间分配方法及装置 |
CN110209595A (zh) * | 2018-02-28 | 2019-09-06 | 贵州白山云科技股份有限公司 | 一种用于管理内存页的方法及装置 |
CN110209489A (zh) * | 2018-02-28 | 2019-09-06 | 贵州白山云科技股份有限公司 | 一种适用于内存页结构的内存管理方法及装置 |
WO2022120522A1 (zh) * | 2020-12-07 | 2022-06-16 | 深圳市大疆创新科技有限公司 | 内存空间的分配方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555405A (en) * | 1993-07-06 | 1996-09-10 | Digital Equipment Corporation | Method and apparatus for free space management in a forwarding database having forwarding entry sets and multiple free space segment queues |
CN102521139A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种内存管理的方法和装置 |
CN103176907A (zh) * | 2011-12-22 | 2013-06-26 | 北京新媒传信科技有限公司 | 一种内存管理的方法和*** |
-
2013
- 2013-08-19 CN CN201310364517.4A patent/CN103455433B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555405A (en) * | 1993-07-06 | 1996-09-10 | Digital Equipment Corporation | Method and apparatus for free space management in a forwarding database having forwarding entry sets and multiple free space segment queues |
CN102521139A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种内存管理的方法和装置 |
CN103176907A (zh) * | 2011-12-22 | 2013-06-26 | 北京新媒传信科技有限公司 | 一种内存管理的方法和*** |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631930A (zh) * | 2013-12-06 | 2014-03-12 | 北京京东尚科信息技术有限公司 | 一种搜索引擎空间占用统计方法及*** |
CN103678172A (zh) * | 2013-12-25 | 2014-03-26 | Tcl集团股份有限公司 | 一种本地数据缓存管理方法及装置 |
CN103678172B (zh) * | 2013-12-25 | 2017-05-03 | Tcl集团股份有限公司 | 一种本地数据缓存管理方法及装置 |
CN103942150A (zh) * | 2014-04-01 | 2014-07-23 | 上海网达软件股份有限公司 | 一种用于实时流媒体传输***的内存管理方法 |
CN104268093A (zh) * | 2014-09-22 | 2015-01-07 | 可牛网络技术(北京)有限公司 | 内存分配方法及装置 |
CN105808219A (zh) * | 2014-12-29 | 2016-07-27 | ***通信集团公司 | 一种内存空间分配方法及装置 |
CN105808219B (zh) * | 2014-12-29 | 2019-06-25 | ***通信集团公司 | 一种内存空间分配方法及装置 |
CN110209595A (zh) * | 2018-02-28 | 2019-09-06 | 贵州白山云科技股份有限公司 | 一种用于管理内存页的方法及装置 |
CN110209489A (zh) * | 2018-02-28 | 2019-09-06 | 贵州白山云科技股份有限公司 | 一种适用于内存页结构的内存管理方法及装置 |
CN110209489B (zh) * | 2018-02-28 | 2020-07-31 | 贵州白山云科技股份有限公司 | 一种适用于内存页结构的内存管理方法及装置 |
WO2022120522A1 (zh) * | 2020-12-07 | 2022-06-16 | 深圳市大疆创新科技有限公司 | 内存空间的分配方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103455433B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103455433A (zh) | 内存管理方法及*** | |
CN101221536B (zh) | 嵌入式***的内存管理方法及装置 | |
CN100382048C (zh) | 一种内存管理方法 | |
CN104899156A (zh) | 一种面向大规模社交网络的图数据存储及查询方法 | |
EP3575968A1 (en) | Method and device for synchronizing active transaction lists | |
CN115220918A (zh) | 一种神经网络的内存分配方法及装置 | |
US9037830B2 (en) | Organization of a small object area and a large object area in a Java heap | |
CN102968378B (zh) | 一种内存分配和释放的方法、装置及*** | |
CN101986285A (zh) | 虚拟机存储空间管理方法、***及物理主机 | |
CN104731799A (zh) | 内存数据库管理装置 | |
CN1271524C (zh) | 一种静态内存管理方法 | |
CN105718319B (zh) | 一种内存池版图解析方法和内存池装置 | |
CN105404679A (zh) | 数据处理方法和装置 | |
CN109117308A (zh) | 快照处理的方法和装置 | |
CN105677761A (zh) | 一种数据切分的方法及*** | |
CN102999434A (zh) | 一种内存管理方法及装置 | |
CN103218305A (zh) | 存储空间的分配方法 | |
CN102982186A (zh) | 基于oracle数据库***的range分区表的维护方法和*** | |
CN103488577A (zh) | 一种基于用途编号的用户程序内存分配及批量回收的方法及装置 | |
CN105975614A (zh) | 一种集群配置装置、一种更新数据的方法及装置 | |
CN110109677B (zh) | 一种动态对象缓存池分配方法 | |
CN1307558C (zh) | 通信***中分***间的虚拟内存分配管理方法 | |
US20200226060A1 (en) | In-place garbage collection of a sharded, replicated distributed state machine based on mergeable operations | |
CN107342944B (zh) | 一种id标识分配与持久化方法及*** | |
CN102541743B (zh) | 用于存储管理的方法、设备和*** |
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 |