CN101493787A - 一种内存操作的管理方法及系统 - Google Patents
一种内存操作的管理方法及系统 Download PDFInfo
- Publication number
- CN101493787A CN101493787A CNA2009100091052A CN200910009105A CN101493787A CN 101493787 A CN101493787 A CN 101493787A CN A2009100091052 A CNA2009100091052 A CN A2009100091052A CN 200910009105 A CN200910009105 A CN 200910009105A CN 101493787 A CN101493787 A CN 101493787A
- Authority
- CN
- China
- Prior art keywords
- memory
- thread
- memory block
- level
- size
- 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
技术领域
本发明涉及内存管理技术领域,尤其涉及一种内存操作的管理方法及系统。
背景技术
目前,为了避免直接使用操作系统分配内存带来的内存碎片化问题,现有技术一般都采用二级内存管理模式来管理内存。该二级内存管理模式的架构是:第一级由操作系统维护内存,第二级由进程维护内存。其中,进程通过内存池的方式来对操作系统分配给它的内存进行维护。这里,将操作系统维护的内存称为操作系统级内存,将进程维护的内存称为进程级内存池。图1为现有内存池组织方式的示意图,如图1所示,内存池中内存块的大小一般为2n,大小相同的内存块通过同一内存队列指针构成一个列表,内存池指针又将这些列表通过各内存队列指针联系起来构成内存池。
当运用二级内存管理模式管理内存时,由于业务模块通过线程运行,而线程本身没有内存块但可以享用其所属的进程的内存块,因此业务模块使用内存块时需通过自身所属的线程向进程申请内存块;同样,当业务模块使用完内存块后,也通过其所属的线程向进程释放内存块。众所周知,当线程向进程申请或释放内存块时均需加锁,以保证在申请或释放时,只有该线程能访问该进程,且只有当该线程访问完该进程进行解锁后,其它线程才能访问该进程。
随着科技的进步,如今计算机的硬件都在向多CPU方向发展,软件也在向多进程、多线程方向发展,现有二级内存管理模式已不适用于这种应用环境。因为在多线程运行的情况下,若每个线程都高频度地申请或释放内存块,则需要频繁地进行加锁和解锁操作,这会造成线程之间相互等待,从而影响程序的运行效率,也就不能充分利用多CPU这样的硬件条件。
发明内容
有鉴于此,本发明的主要目的在于提供一种内存操作的管理方法和系统,以避免频繁地进行加锁和解锁操作,从而提高程序运行效率。
为达到上述目的,本发明的技术方案是这样实现的:
一种内存操作的管理方法,设置由线程维护的线程级内存池,该方法还包括:
业务模块需要使用内存块时向线程申请,线程计算应分配的内存块的大小后,查找自身的线程级内存池中是否存在所需大小的内存块,
如果存在,则线程从线程级内存池中分配相应大小的内存块给业务模块,并结束内存申请流程;
否则,加锁并向进程申请一定数量所需大小的内存块;或者分配比所需大小大一级的内存块给业务模块,并结束内存申请流程。
其中,所述相应大小的内存块为:大小为2n的内存块,所述2n等于业务模块申请的内存的大小,或2n为大于业务模块申请的内存大小的最小的2n。
其中,该方法进一步包括:所述业务模块首次向线程申请内存块时,线程向进程申请得到一定数量所需大小的内存块之后,开始生成自身的线程级内存池。
其中,所述线程级内存池由线程局部存储技术、或者线程级内存管理对象管理。
其中,所述线程向进程申请一定数量所需大小的内存块之后,该方法还包括:
进程查找自身的进程级内存池中是否存在所需数量所需大小的内存块,如果存在,则进程分配相应数量相应大小的内存块给线程级内存池;否则,向操作系统申请内存,所申请内存的大小大于等于线程向进程申请的所有内存块的大小。
其中,所述进程向操作系统申请内存之后,该方法还包括:
操作系统查找自身是否存在进程所需大小的内存,如果不存在,则内存申请失败,结束内存块申请流程;否则,为进程分配相应大小的内存,之后进程将分配得到的内存划分成线程所需大小的内存块存入自身的进程级内存池中。
其中,所述进程将分配得到的内存划分成线程所需大小的内存块存入自身的进程级内存池中之后,该方法还包括:
进程分配相应数量相应大小的内存块给线程级内存池。
其中,所述进程分配相应数量相应大小的内存块给线程级内存池之后,该方法还包括:
解锁;然后从线程级内存池中分配相应大小的内存块给业务模块,并结束内存块申请流程。
其中,该方法进一步包括:
业务模块向线程释放一定大小的内存块;
将释放的内存块存入线程的线程级内存池;
判断线程级内存池中该大小的内存块是否超过指定数目,如果未超过指定数目,则结束内存块释放流程;否则,加锁并向进程释放一定数目的该大小的内存块,然后解锁,并结束内存块释放流程。
一种内存操作的管理系统,包括一级内存管理单元、二级内存管理单元及三级内存管理单元;其中,
一级内存管理单元,用于由操作系统维护内存,当进程向操作系统申请内存时由操作系统为进程分配内存;
二级内存管理单元,用于由进程以进程级内存池的方式维护内存,当线程向进程申请内存块时进程从自身的进程级内存池中分配内存块给线程级内存池;
三级内存管理单元,用于由线程以线程级内存池的方式维护内存。
由以上技术方案可以看出,采用本发明的三级内存管理模式,若业务模块需使用内存块,则可以直接向业务模块所属的线程申请,如果该线程的线程级内存池中存在大小合适的内存块,则可以直接向业务模块分配内存块而不需要进行加锁操作,只有当线程级内存池中没有大小合适的内存块时,才需加锁向进程申请内存块;同样,当业务模块释放内存块时,也直接向线程的线程级内存池中释放而不需要进行加解锁操作,因此,与现有二级内存管理模式相比,本发明能明显减少加锁和解锁操作,从而提高程序的运行效率。
附图说明
图1为现有内存池组织方式的示意图;
图2为本发明三级内存管理模式的原理示意图;
图3为本发明三级内存管理模式下内存块申请的流程示意图;
图4为本发明三级内存管理模式下内存块释放的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明了,以下对本发明作进一步详细说明。
本发明的基本思想是:在现有二级内存管理模式的基础上,增加一级线程级内存池,业务模块需要使用内存块时直接向线程申请,线程调用自身的线程级内存池为业务模块分配内存块;由于线程同时只运行一个业务模块,因此业务模块向线程申请内存块时不需要加锁,如此能减少业务模块申请或释放内存块时的加锁和解锁操作,从而提高程序的运行效率。其中,线程级内存池为由线程维护的内存。
本发明内存操作的管理方法是:设置三级内存管理模式,第一级由操作系统维护内存,第二级由进程以进程级内存池的方式维护内存,第三级由线程以线程级内存池的方式维护内存。
图2显示的为包含多线程的三级内存管理模式,每个线程各具有一个线程级内存池。其中,线程级内存池及进程级内存池均采用如图1所示的方式组织。
虽然线程级内存池可以在创建线程时生成,但通常是在业务模块首次向线程申请内存块时才开始生成的。具体地说,在最初阶段,各线程均没有线程级内存池,只有当业务模块首次向其所属的线程申请内存块时,该线程向进程申请得到一定数量所需大小的内存块后,才开始生成自身的线程级内存池,此时的线程级内存池是由相同大小的内存块构成。之后,随着申请的次数增多,线程级内存池逐渐包括不同大小的内存块。
线程级内存池的生成可以由线程局部存储技术或专门的线程级内存管理对象来实现。其中,专门的线程级内存管理对象为用户编写的一段代码。此外,对各线程的线程级内存池的统一管理也是由线程局部存储技术或专门的线程级内存管理对象来实现。如何通过线程局部存储技术或线程级内存管理对象来管理线程级内存池为现有技术,在此不再赘述。但是,优选线程局部存储技术来管理各线程级内存池,可以简化管理的复杂度。
为实现内存操作的管理方法,本发明相应提供一种内存操作的管理系统,该系统包括一级内存管理单元、二级内存管理单元及三级内存管理单元;其中,
一级内存管理单元,用于由操作系统维护内存,当进程向操作系统申请内存时由操作系统为进程分配内存;
二级内存管理单元,用于由进程以进程级内存池的方式维护内存,当线程向进程申请内存块时进程从自身的进程级内存池中分配内存块给线程级内存池;
三级内存管理单元,用于由线程以线程级内存池的方式维护内存。
在三级内存管理模式下,业务模块直接向线程申请或释放内存块。
以下结合图3说明采用本发明进行内存块申请的方法。如图3所示,采用本发明进行内存块申请的方法包括:
步骤301,业务模块向线程申请内存块。
步骤302,线程计算应分配的内存块的大小;
具体地说,线程调用内存分配函数,内存分配函数根据分配内存块的大小应等于或最小地大于业务模块申请的内存的大小这一原则,计算出应分配内存块的大小。所述应分配内存块的大小为2n,且2n等于业务模块申请的内存的大小,或2n为大于业务模块申请的内存大小的最小的2n。例如,业务模块申请30字节的内存块,由于内存块的大小一般为2n,因此,通过内存分配函数计算可知应分配大小为32字节的内存块。
步骤303~304b,线程查找自身的线程级内存池中是否存在所需大小的内存块,如果存在,则执行步骤312;否则,加锁并向进程申请一定数量所需大小的内存块;或者分配一块比所需大小大一级的内存块给业务模块,并结束内存申请流程;
例如,当业务模块申请20字节的内存块时,应分配大小为32字节的内存块,但是如果当线程级内存池中没有32字节的内存块但有64字节的内存块时,也可以直接分配稍大些的内存块即64字节的内存块,当然这样会浪费空间,因此,当没有32字节的内存块时,优选向进程申请一定数量32字节的内存块;
其中,一次申请同一大小的内存块的数量可以为一个或一个以上,但较佳地应选择多个,因为这样做可以减少业务模块再次申请该大小的内存块时加锁的频率。例如,假设线程向进程一次申请100个32字节的内存块,则之后业务模块再申请32字节的内存块时,将至少有99%的概率不需要加锁,这样就可以提高程序的运行效率。以下阐述“至少99%的概率”是如何计算得出的:
假设只有业务模块向该线程申请32字节的内存块,而没有业务模块向其释放32字节的内存块,则除了第一次申请32字节的内存块时需要进行加锁,其余99次均不需要加锁;但是一般情况下,业务模块既向其申请内存块又向其释放内存块,释放的内存块被存入线程级内存池后,又能被分配给其他的业务模块,这样,将超过99%的概率不需要加锁。因此能大大提高内存块的重复利用率。
步骤305~306,进程查找自身的进程级内存池中是否存在所需数量所需大小的内存块,如果存在,则执行步骤310~312;否则,进程向操作系统申请内存,所申请内存的大小大于等于线程向进程申请的所有内存块的大小;
较佳地,为了减少进程向操作系统申请内存的次数,应将进程申请内存的大小设为大于线程申请的所有内存块的大小,这样也可以提高程序的运行效率。
步骤307~309,操作系统查找自身是否存在进程所需大小的内存,如果不存在,则操作系统向进程返回为空,说明内存申请失败,则结束内存块申请流程;否则,为进程分配相应大小的内存,之后进程将分配得到的内存划分成线程所需大小的内存块存入自身的进程级内存池中,然后执行步骤310~312。
步骤310~311,进程从自身的进程级内存池中分配相应数量相应大小的内存块给线程级内存池,然后解锁。
步骤312,线程从线程级内存池中分配一块相应大小的内存块给业务模块,并结束内存块申请流程。
以下结合图4说明利用本发明进行内存块释放的方法。如图4所示,利用本发明进行内存块释放的方法包括:
步骤401,业务模块向线程释放一定大小的内存块;
步骤402,将该释放的内存块存入线程的线程级内存池中;
步骤403~406,判断线程级内存池中该大小的内存块是否超过指定数目,如果未超过指定数目,则结束内存块释放流程;否则,加锁并向进程的进程级内存池释放一定数目的该大小的内存块,然后解锁,并结束内存块释放流程。
其中,步骤403中内存块的指定数目可根据以下原则进行选择:如果只有业务模块向该线程级内存池释放该大小的内存块,而没有业务模块向其申请该大小的内存块,则该指定数目应选择的小一些,比如可以将指定数目设置为等于步骤405中的一定数目,即:将线程级内存池中该大小的内存块全部释放给进程级内存池;如果既有业务模块向其释放该大小的内存块,又有业务模块向其申请该大小的内存块,则该指定数目应选择的大一些,比如可以将该指定数目设置为一定数目的两倍大小,即:仅释放一半该大小的内存块。
虽然业务模块释放内存块时,可以将该内存块释放至之前申请该内存块的线程级内存池中,也可以将该内存块释放至其他线程的线程级内存池中,在释放内存块时可选择线程的情况下,优选前者,因为这样可以大大增加同一线程级内存池中内存块的重复利用率,从而最大限度地减少线程向进程申请内存块时加锁的频率。
以下通过实际的测试试验来更明显地说明本发明的优势。
对于单CPU环境:P42.6G,1G内存,XPSP2操作系统,10个线程各100万次内存操作,二级内存管理模式下所用的操作时间为3556ms;三级内存管理模式下所用的操作时间为2323ms。
对于多CPU环境:Xeon 2.6G 8核CPU,3.5G内存,Windows 2003 Server操作系统,10个线程各100万次内存操作,二级内存管理模式下所用的操作时间为11094ms;三级内存管理模式下所用的操作时间为984ms。
从测试结果可以明显看出,在二级内存管理模式下,线程高频度地申请或释放内存块,需要频繁地进行加锁和解锁操作,导致多线程之间互相等待,因此二级内存管理模式下内存操作的时间比较长,非常不适用于多线程、多CPU高频度地操作内存。但是,在本发明三级内存管理模式下,由于减少了加锁和解锁的次数,使得多CPU可以充分得并行工作,因此,比现有二级内存管理模式更具有优势,且尤其适用于多线程、多CPU高频度地操作内存。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1、一种内存操作的管理方法,其特征在于,设置由线程维护的线程级内存池,该方法还包括:
业务模块需要使用内存块时向线程申请,线程计算应分配的内存块的大小后,查找自身的线程级内存池中是否存在所需大小的内存块,
如果存在,则线程从线程级内存池中分配相应大小的内存块给业务模块,并结束内存申请流程;
否则,加锁并向进程申请一定数量所需大小的内存块;或者分配比所需大小大一级的内存块给业务模块,并结束内存申请流程。
2、根据权利要求1所述的内存操作的管理方法,其特征在于,所述相应大小的内存块为:大小为2n的内存块,所述2n等于业务模块申请的内存的大小,或2n为大于业务模块申请的内存大小的最小的2n。
3、根据权利要求1所述的内存操作的管理方法,其特征在于,该方法进一步包括:所述业务模块首次向线程申请内存块时,线程向进程申请得到一定数量所需大小的内存块之后,开始生成自身的线程级内存池。
4、根据权利要求1所述的内存操作的管理方法,其特征在于,所述线程级内存池由线程局部存储技术、或者线程级内存管理对象管理。
5、根据权利要求1所述的内存操作的管理方法,其特征在于,所述线程向进程申请一定数量所需大小的内存块之后,该方法还包括:
进程查找自身的进程级内存池中是否存在所需数量所需大小的内存块,如果存在,则进程分配相应数量相应大小的内存块给线程级内存池;否则,向操作系统申请内存,所申请内存的大小大于等于线程向进程申请的所有内存块的大小。
6、根据权利要求5所述的内存操作的管理方法,其特征在于,所述进程向操作系统申请内存之后,该方法还包括:
操作系统查找自身是否存在进程所需大小的内存,如果不存在,则内存申请失败,结束内存块申请流程;否则,为进程分配相应大小的内存,之后进程将分配得到的内存划分成线程所需大小的内存块存入自身的进程级内存池中。
7、根据权利要求6所述的内存操作的管理方法,其特征在于,所述进程将分配得到的内存划分成线程所需大小的内存块存入自身的进程级内存池中之后,该方法还包括:
进程分配相应数量相应大小的内存块给线程级内存池。
8、根据权利要求5或7所述的内存操作的管理方法,其特征在于,所述进程分配相应数量相应大小的内存块给线程级内存池之后,该方法还包括:
解锁;然后从线程级内存池中分配相应大小的内存块给业务模块,并结束内存块申请流程。
9、根据权利要求1所述的内存操作的管理方法,其特征在于,该方法进一步包括:
业务模块向线程释放一定大小的内存块;
将释放的内存块存入线程的线程级内存池;
判断线程级内存池中该大小的内存块是否超过指定数目,如果未超过指定数目,则结束内存块释放流程;否则,加锁并向进程释放一定数目的该大小的内存块,然后解锁,并结束内存块释放流程。
10、一种内存操作的管理系统,其特征在于,该系统包括一级内存管理单元、二级内存管理单元及三级内存管理单元;其中,
一级内存管理单元,用于由操作系统维护内存,当进程向操作系统申请内存时由操作系统为进程分配内存;
二级内存管理单元,用于由进程以进程级内存池的方式维护内存,当线程向进程申请内存块时进程从自身的进程级内存池中分配内存块给线程级内存池;
三级内存管理单元,用于由线程以线程级内存池的方式维护内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100091052A CN101493787B (zh) | 2009-02-18 | 2009-02-18 | 一种内存操作的管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100091052A CN101493787B (zh) | 2009-02-18 | 2009-02-18 | 一种内存操作的管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101493787A true CN101493787A (zh) | 2009-07-29 |
CN101493787B CN101493787B (zh) | 2011-05-11 |
Family
ID=40924397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100091052A Expired - Fee Related CN101493787B (zh) | 2009-02-18 | 2009-02-18 | 一种内存操作的管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101493787B (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799773A (zh) * | 2010-04-07 | 2010-08-11 | 福州福昕软件开发有限公司 | 并行计算的内存访问方法 |
CN101950272A (zh) * | 2010-09-10 | 2011-01-19 | 北京捷通华声语音技术有限公司 | 一种嵌入式系统中内存管理的方法和装置 |
CN102236603A (zh) * | 2010-04-29 | 2011-11-09 | 国际商业机器公司 | 虚拟化环境中垃圾回收的方法和系统 |
CN102446139A (zh) * | 2011-11-14 | 2012-05-09 | 奇智软件(北京)有限公司 | 一种数据存储方法及装置 |
CN102662761A (zh) * | 2012-03-27 | 2012-09-12 | 福建星网锐捷网络有限公司 | 一种多核中央处理器系统中内存池的调度方法以及装置 |
CN102841813A (zh) * | 2011-06-24 | 2012-12-26 | Nxp股份有限公司 | 分配存储器资源的系统和方法 |
CN102855196A (zh) * | 2011-06-28 | 2013-01-02 | 上海聚力传媒技术有限公司 | 一种用于呈现新增显示单元的方法、装置和设备 |
CN103246567A (zh) * | 2013-03-26 | 2013-08-14 | 中国科学院电子学研究所 | 用于目标跟踪内存管理的队列方法 |
CN103399821A (zh) * | 2013-06-28 | 2013-11-20 | 贵阳朗玛信息技术股份有限公司 | jitterbuf内存处理方法及装置 |
CN103399825A (zh) * | 2013-08-05 | 2013-11-20 | 武汉邮电科学研究院 | 一种无锁化内存申请释放方法 |
CN103617123A (zh) * | 2013-11-21 | 2014-03-05 | 珠海金山网络游戏科技有限公司 | 一种通过内存块实现内存管理的方法及系统 |
CN104182356A (zh) * | 2014-09-19 | 2014-12-03 | 深圳市茁壮网络股份有限公司 | 一种内存管理方法、装置及终端设备 |
CN105117295A (zh) * | 2015-09-18 | 2015-12-02 | 北京金山安全软件有限公司 | 一种内存资源释放方法、装置及电子设备 |
CN105138328A (zh) * | 2015-08-21 | 2015-12-09 | 广东欧珀移动通信有限公司 | 电话黄页控制方法和相关设备 |
CN105354147A (zh) * | 2014-08-20 | 2016-02-24 | 腾讯科技(深圳)有限公司 | 一种内存池管理方法及管理系统 |
CN106815061A (zh) * | 2015-12-01 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种业务处理方法及装置 |
CN106844041A (zh) * | 2016-12-29 | 2017-06-13 | 华为技术有限公司 | 内存管理的方法及内存管理系统 |
CN107133103A (zh) * | 2017-05-05 | 2017-09-05 | 第四范式(北京)技术有限公司 | 用于数据流式计算的内存管理系统及其方法 |
CN107391278A (zh) * | 2017-07-25 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种基于共享内存的前后端通信方法 |
CN107515785A (zh) * | 2016-06-16 | 2017-12-26 | 大唐移动通信设备有限公司 | 一种内存管理方法及装置 |
CN110209493A (zh) * | 2019-04-11 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置、电子设备及存储介质 |
CN110502335A (zh) * | 2019-06-12 | 2019-11-26 | 成都虚谷伟业科技有限公司 | 分布式数据库多级内存管理装置 |
CN117311997A (zh) * | 2023-11-29 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种计算芯片的内存管理方法、装置及计算芯片 |
-
2009
- 2009-02-18 CN CN2009100091052A patent/CN101493787B/zh not_active Expired - Fee Related
Cited By (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799773B (zh) * | 2010-04-07 | 2013-04-17 | 福州福昕软件开发有限公司 | 并行计算的内存访问方法 |
CN101799773A (zh) * | 2010-04-07 | 2010-08-11 | 福州福昕软件开发有限公司 | 并行计算的内存访问方法 |
CN102236603A (zh) * | 2010-04-29 | 2011-11-09 | 国际商业机器公司 | 虚拟化环境中垃圾回收的方法和系统 |
US8856194B2 (en) | 2010-04-29 | 2014-10-07 | International Business Machines Corporation | Efficient garbage collection in virtualization environment |
CN101950272A (zh) * | 2010-09-10 | 2011-01-19 | 北京捷通华声语音技术有限公司 | 一种嵌入式系统中内存管理的方法和装置 |
CN101950272B (zh) * | 2010-09-10 | 2012-08-29 | 北京捷通华声语音技术有限公司 | 一种嵌入式系统中内存管理的方法和装置 |
CN102841813B (zh) * | 2011-06-24 | 2014-10-22 | Nxp股份有限公司 | 分配存储器资源的系统和方法 |
CN102841813A (zh) * | 2011-06-24 | 2012-12-26 | Nxp股份有限公司 | 分配存储器资源的系统和方法 |
CN102855196B (zh) * | 2011-06-28 | 2017-07-25 | 上海聚力传媒技术有限公司 | 一种用于呈现新增显示单元的方法、装置和设备 |
CN102855196A (zh) * | 2011-06-28 | 2013-01-02 | 上海聚力传媒技术有限公司 | 一种用于呈现新增显示单元的方法、装置和设备 |
CN102446139A (zh) * | 2011-11-14 | 2012-05-09 | 奇智软件(北京)有限公司 | 一种数据存储方法及装置 |
CN102446139B (zh) * | 2011-11-14 | 2015-02-18 | 奇智软件(北京)有限公司 | 一种数据存储方法及装置 |
CN102662761A (zh) * | 2012-03-27 | 2012-09-12 | 福建星网锐捷网络有限公司 | 一种多核中央处理器系统中内存池的调度方法以及装置 |
CN103246567A (zh) * | 2013-03-26 | 2013-08-14 | 中国科学院电子学研究所 | 用于目标跟踪内存管理的队列方法 |
CN103399821A (zh) * | 2013-06-28 | 2013-11-20 | 贵阳朗玛信息技术股份有限公司 | jitterbuf内存处理方法及装置 |
CN103399825A (zh) * | 2013-08-05 | 2013-11-20 | 武汉邮电科学研究院 | 一种无锁化内存申请释放方法 |
CN103399825B (zh) * | 2013-08-05 | 2015-12-23 | 武汉邮电科学研究院 | 一种无锁化内存申请释放方法 |
CN103617123A (zh) * | 2013-11-21 | 2014-03-05 | 珠海金山网络游戏科技有限公司 | 一种通过内存块实现内存管理的方法及系统 |
CN105354147B (zh) * | 2014-08-20 | 2019-05-31 | 腾讯科技(深圳)有限公司 | 一种内存池管理方法及管理系统 |
CN105354147A (zh) * | 2014-08-20 | 2016-02-24 | 腾讯科技(深圳)有限公司 | 一种内存池管理方法及管理系统 |
CN104182356A (zh) * | 2014-09-19 | 2014-12-03 | 深圳市茁壮网络股份有限公司 | 一种内存管理方法、装置及终端设备 |
CN104182356B (zh) * | 2014-09-19 | 2017-06-27 | 深圳市茁壮网络股份有限公司 | 一种内存管理方法、装置及终端设备 |
CN105138328A (zh) * | 2015-08-21 | 2015-12-09 | 广东欧珀移动通信有限公司 | 电话黄页控制方法和相关设备 |
CN105138328B (zh) * | 2015-08-21 | 2018-07-06 | 广东欧珀移动通信有限公司 | 电话黄页控制方法和相关设备 |
CN105117295A (zh) * | 2015-09-18 | 2015-12-02 | 北京金山安全软件有限公司 | 一种内存资源释放方法、装置及电子设备 |
CN106815061A (zh) * | 2015-12-01 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种业务处理方法及装置 |
CN106815061B (zh) * | 2015-12-01 | 2020-11-24 | 创新先进技术有限公司 | 一种业务处理方法及装置 |
CN107515785A (zh) * | 2016-06-16 | 2017-12-26 | 大唐移动通信设备有限公司 | 一种内存管理方法及装置 |
CN106844041A (zh) * | 2016-12-29 | 2017-06-13 | 华为技术有限公司 | 内存管理的方法及内存管理系统 |
CN106844041B (zh) * | 2016-12-29 | 2020-06-16 | 华为技术有限公司 | 内存管理的方法及内存管理系统 |
CN107133103B (zh) * | 2017-05-05 | 2019-01-01 | 第四范式(北京)技术有限公司 | 用于数据流式计算的内存管理系统及其方法 |
CN109460302A (zh) * | 2017-05-05 | 2019-03-12 | 第四范式(北京)技术有限公司 | 用于数据流式计算的内存管理系统及其方法 |
CN109460302B (zh) * | 2017-05-05 | 2020-01-21 | 第四范式(北京)技术有限公司 | 用于数据流式计算的内存管理系统及其方法 |
CN107133103A (zh) * | 2017-05-05 | 2017-09-05 | 第四范式(北京)技术有限公司 | 用于数据流式计算的内存管理系统及其方法 |
CN107391278A (zh) * | 2017-07-25 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种基于共享内存的前后端通信方法 |
CN110209493A (zh) * | 2019-04-11 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置、电子设备及存储介质 |
CN110502335A (zh) * | 2019-06-12 | 2019-11-26 | 成都虚谷伟业科技有限公司 | 分布式数据库多级内存管理装置 |
CN117311997A (zh) * | 2023-11-29 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种计算芯片的内存管理方法、装置及计算芯片 |
CN117311997B (zh) * | 2023-11-29 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种计算芯片的内存管理方法、装置及计算芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN101493787B (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101493787B (zh) | 一种内存操作的管理方法及系统 | |
CN102567107B (zh) | 高并行的实时内存资源管理调度方法 | |
CN101916296B (zh) | 基于文件的海量数据处理方法 | |
CN101221536B (zh) | 嵌入式系统的内存管理方法及装置 | |
CN103425592B (zh) | 一种多进程系统中的内存管理方法及装置 | |
CN108038002A (zh) | 一种嵌入式软件内存管理方法 | |
CN103914265B (zh) | 集群细粒度内存管理方法 | |
CN102999522A (zh) | 一种数据存储方法和装置 | |
CN101083140A (zh) | 测试计算机的存储器存储系统的方法 | |
CN108132842A (zh) | 一种嵌入式软件内存管理系统 | |
CN103885986A (zh) | 主备数据库同步的方法和装置 | |
CN1514354A (zh) | 面向构件基于系统内核的进程池/线程池管理方法 | |
CN101968772A (zh) | 嵌入式系统高效内存池的实现方法 | |
CN101799773A (zh) | 并行计算的内存访问方法 | |
CN104881324A (zh) | 一种多线程下的内存管理方法 | |
CN106326004A (zh) | 一种嵌入式数据库的动态内存分配方法 | |
CN102253893A (zh) | 一种内存扩展方法 | |
CN105205178A (zh) | 一种多进程访问内存数据库系统 | |
CN101048737A (zh) | 执行计算机程序的方法、操作系统以及计算设备 | |
CN102521143A (zh) | 一种堆数据处理方法及装置 | |
CN103984639A (zh) | 一种动态内存分配方法 | |
US20130117522A1 (en) | Inter-Process Memory Management | |
CN102521079A (zh) | 软件栈缓冲区溢出的容错方法 | |
CN101739346A (zh) | 对安全控制模块内存进行集中控制的方法 | |
CN103902466A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110511 Termination date: 20180218 |
|
CF01 | Termination of patent right due to non-payment of annual fee |