CN101984417A - 内存管理方法及装置 - Google Patents
内存管理方法及装置 Download PDFInfo
- Publication number
- CN101984417A CN101984417A CN2010105294249A CN201010529424A CN101984417A CN 101984417 A CN101984417 A CN 101984417A CN 2010105294249 A CN2010105294249 A CN 2010105294249A CN 201010529424 A CN201010529424 A CN 201010529424A CN 101984417 A CN101984417 A CN 101984417A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory block
- application
- heap
- application system
- 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.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
Abstract
本发明公开了一种内存管理方法和装置,该方法包括:根据应用系统的内存需求配置至少一个队列,不同队列管理不同尺寸的内存块,各队列管理的内存块尺寸由所述内存需求确定,所述应用系统中包含至少一个应用;将所述应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中;以及当所述应用系统中的应用发起内存块申请时,在所述各队列中查找与申请的内存块尺寸匹配的内存块并分配给所述应用。采用本发明能够节省内存。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种内存管理方法及装置。
背景技术
在移动通信嵌入式应用领域,嵌入式操作系统的应用日益广泛,但是,硬件平台存在内存限制,这就使得动态内存的使用成为了趋势。通常,使用动态内存可以提高内存的使用效率,提高系统容量。
相关技术提供了一种动态内存管理接口,包括:申请接口malloc()和释放接口free()。但是上述接口长时间的使用以后会出现如图1所示情况,即,内存会被分成大小不同的若干块。若接收到内存申请时,需要遍历整个空闲队列找到比当前申请的内存块尺寸相等或者更大的内存块,然后从该内存块上划分申请的内存块尺寸大小的内存,把剩余的内存再挂接在空闲队列上。这样随着不断地申请释放会产生大量的不连续内存碎片,存在较大的内存浪费,而且每次查找比当前申请的内存块尺寸相等或者更大的内存块,均需要对整个链表进行遍历,查找效率较差。
相关技术中还提供了一些改进的动态内存管理方式,如DSP(Digital Signal Processor,数字信号处理器)上的DSP/BIOS(BasicInstruction Operation System,基本指令操作系统)提供的缓冲池Buffer Pool方式,示意图请参见图2,这种内存管理方式需要预先根据应用的情况分配好各个队列的内存数量,在初始化的时候把队列根据内存的大小和数量建立好,在应用过程中根据需求进行申请和释放。这就可能由于预先划分的不合理出现一种队列中内存使用完了,而其他队列中还有充足内存的情况,这种动态内存管理方式采用固定尺寸管理,灵活性差,内存仍不能得到充分利用。
针对相关技术中内存浪费的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种内存管理方法及装置,以至少解决上述内存浪费的问题。
根据本发明的一个方面,提供了一种内存管理方法,包括:
根据应用系统的内存需求配置至少一个队列,不同队列管理不同尺寸的内存块,各队列管理的内存块尺寸由所述内存需求确定,所述应用系统中包含至少一个应用;
将所述应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中;以及
当所述应用系统中的应用发起内存块申请时,在所述各队列中查找与申请的内存块尺寸匹配的内存块并分配给所述应用。
较优的,所述根据应用系统的内存需求配置至少一个队列之前,包括:
为所述应用系统配置内存量大于所述应用系统的内存需求的内存堆;以及
在所述各队列中未查找与申请的内存块尺寸匹配的内存块并分配给所述应用时,包括:
在所述内存堆中分割与所述申请的内存块尺寸匹配的内存块,并分配给所述应用。
较优的,若所述内存堆中剩余内存量小于所述申请的内存块尺寸时,通知所述应用申请失败。
较优的,所述应用系统已释放的内存块是所述内存堆最后一次分割的内存块时,回收该内存块。
较优的,在所述内存堆中分割与所述申请的内存块尺寸匹配的内存块,并分配给所述应用,包括:从所述内存堆的底部依次分割与所述申请的内存块尺寸匹配的内存块。
较优的,从所述内存堆的底部依次分割与所述申请的内存块尺寸匹配的内存块之后,还包括:
在所述内存堆头部保存已分配的内存块地址与所述内存堆地址形成的偏移量,并将所述偏移量进行排序;以及
根据排序结果确定所述内存堆即将回收的内存块的地址。
较优的,当所述应用系统改变,或者所述应用系统的内存需求改变时,根据改变后的应用系统的内存需求重新配置至少一个队列。
根据本发明的另一方面,提供了一种内存管理装置,包括:
配置单元,用于根据应用系统的内存需求配置至少一个队列,不同队列管理不同尺寸的内存块,各队列管理的内存块尺寸由所述内存需求确定,所述应用系统中包含至少一个应用;
存储单元,用于将所述应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中;
分配单元,用于当所述应用系统中的应用发起内存块申请时,在所述各队列中查找与申请的内存块尺寸匹配的内存块并分配给所述应用。
较优的,所述配置单元,进一步用于为所述应用系统配置内存量大于所述应用系统的内存需求的内存堆;
所述分配单元,进一步用于在所述内存堆中分割与所述申请的内存块尺寸匹配的内存块,并分配给所述应用。
较优的,所述分配单元,进一步用于若所述内存堆中剩余内存量小于所述申请的内存块尺寸时,通知所述应用申请失败。
较优的,回收单元,用于所述应用系统已释放的内存块是所述内存堆最后一次分割的内存块时,回收该内存块。
较优的,所述分配单元,进一步用于从所述内存堆的底部依次分割与所述申请的内存块尺寸匹配的内存块。
较优的,所述回收单元,进一步用于在所述内存堆头部保存已分配的内存块地址与所述内存堆地址形成的偏移量,并将所述偏移量进行排序;以及,根据排序结果确定所述内存堆即将回收的内存块的地址。
较优的,所述配置单元,进一步用于当所述应用系统改变,或者所述应用系统的内存需求改变时,根据改变后的应用系统的内存需求重新配置至少一个队列。
在本发明实施例中,应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中,当应用系统中的应用发起内存块申请时,在各队列中查找与申请的内存块尺寸匹配的内存块并分配给应用,充分利用了未被回收的内存块,提高内存的利用率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的第一种内存管理方法形成的内存块示意图;
图2是根据相关技术的第二种内存管理方法形成的内存块示意图;
图3是根据本发明实施例的内存管理方法的处理流程图;
图4是根据本发明实施例的内存管理方法的实施例的流程图;
图5是根据本发明实施例的内存堆的示意图;
图6是根据本发明实施例的内存管理装置的第一种结构示意图;
图7是根据本发明实施例的内存管理装置的第二种结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
相关技术提到的两种动态内存管理方法均存在内存利用不充分的问题,为解决该技术问题,本发明实施例提出一种内存管理方法,处理流程如图3所示,包括:
步骤302、根据应用系统的内存需求配置至少一个队列,不同队列管理不同尺寸的内存块,各队列管理的内存块尺寸由内存需求确定,应用系统中包含至少一个应用;
步骤304、将应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中;
步骤306、当应用系统中的应用发起内存块申请时,在各队列中查找与申请的内存块尺寸匹配的内存块并分配给应用。
在本发明实施例中,应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中,当应用系统中的应用发起内存块申请时,在各队列中查找与申请的内存块尺寸匹配的内存块并分配给应用,充分利用了未被回收的内存块,提高内存的利用率。
实施时,根据应用系统的内存需求配置至少一个队列之前,需要首先划分足量的内存作为本发明实施例提供的内存管理方法所使用的内存堆,例如,在本例中,就需要为应用系统配置内存量大于应用系统的内存需求的内存堆,这样才能够满足应用系统的对内存的需求。此时,若在各队列中未查找与申请的内存块尺寸匹配的内存块并分配给应用时,还可以在内存堆中分割与申请的内存块尺寸匹配的内存块,并分配给应用。
当然了,在实施时,若内存堆中剩余内存量小于申请的内存块尺寸时,则无法获得可用的内存块,通知应用申请失败。
在本发明实施例中,随着应用的变化,可以结合内存回收功能动态的调整每个队列中的内存块的数量,例如,应用系统已释放的内存块是内存堆最后一次分割的内存块时,回收该内存块。
在一个实施例中,较优的,在内存堆中分割与申请的内存块尺寸匹配的内存块,并分配给应用,可以从内存堆的底部依次分割与申请的内存块尺寸匹配的内存块。这样就可以避免内存堆被分割成无数零乱的碎片,提高内存的利用率。
从内存堆的底部依次分割与申请的内存块尺寸匹配的内存块之后,可以选择在内存堆头部保存已分配的内存块地址与内存堆地址形成的偏移量,并将偏移量进行排序;根据排序结果确定内存堆即将回收的内存块的地址。根据内存堆头部保存的偏移量,就可以显而易见地判断出此时内存堆应该回收的内存块的地址,减少计算量。
例如,若偏移量是内存块与内存堆的头部地址间的偏移量,形成一个由大到小排序的数组,那么最后一块从内存堆中分割出来的内存块的偏移量是数组中的最后一个,也即是最小的一个;如果偏移量是内存块与内存堆的尾部地址的偏移量,可以将偏移量按从小到大进行排序,形成一个由小到大排序的数组,那么最后一块从内存堆中分割出来的内存块的偏移量是数组中的最后一个,也即是最大的一个。
在本发明实施例中,当应用系统改变,或者应用系统的内存需求改变时,根据改变后的应用系统的内存需求重新配置至少一个队列,避免了队列配置的尺寸不符合当前应用系统,导致队列中存储的内存块无法使用的情况。
综上可得,本发明实施例可以根据应用系统的内存需要灵活地来划分内存,但是又会随着应用的变化,结合内存回收功能来动态的调整每个队列中的内存块的数量,最终每个队列形成固定尺寸大小如图2所示队列,但是具体的尺寸大小与图2所示不一定相同,此处仅仅是对队列的尺寸进行示意。根据本发明实施例能够解决内存碎片、灵活性差等问题,同时还能保证较高的内存利用率。
现对本发明实施例提供的内存管理方法进行说明,参见图4,包括如下步骤:
步骤402、结合应用的内存需求,划分足量的内存作为动态内存管理的内存堆;以及设置管理固定尺寸内存块的队列,这些队列初始为空队列;
步骤404、随着应用申请内存使用,动态管理的内存堆根据申请的情况进行动态的划分,每次申请的内存从内存堆中的底部进行分配,同时保存已经分配的内存地址与堆头部地址形成的偏移量在堆开始部分,依次形成一个由大到小排序好的数组;
步骤406、如果内存释放,那么把释放的内存存放在内存块队列中,队列形成后直接使用释放但未回收的内存来存放内存信息,来形成一个单向链表;
步骤408、如果应用模型发生变化,当前形成的各种尺寸队列中的内存块的数量不再符合最新的应用,那么需要把各个队列中的内存回收到内存堆中,重新生成队列来满足应用。
为使得本发明实施例的目的、技术方案以及优点更加清晰,下面以具体实施例进一步对本发明实施例进行详细说明。
本发明实施例主要是通过应用对内存的申请和释放来自适应地形成按照不同尺寸划分的队列,同时在形成队列过程中使用释放的内存存放构建队列的信息。而且为了更好的处理内存的释放和回收,在内存申请的时候,根据内存地址的偏移量形成了一个由大到小排序好的数组,便于使用算法查找等处理,为说明得更详细,现以具体实例进行说明,具体如图5所示,图5中示意了一个内存堆,其堆头部地址为0x80000,其堆底部地址为0x90000,从该内存堆的底部进行内存块的划分,依次划分的内存块尺寸大小为8、34、128、64、24、64、8......,其中内存堆头部存储了已分配的内存块地址与内存堆地址形成的偏移量,从图中可以看出,分配的内存块有四种尺寸:8、24、64、128;据此生成的数组(存储在队列的表头)也就依次包括:0xFFF8、0xFFE0、0xFFA0、0xFF20......;其中,尺寸为64的列表为空NULL。下面各具体实施例均以图5为示意图。
实施例一:内存申请
首先,根据申请内存的大小,查找对应尺寸的队列是否有空闲。若不空,则从队列链表头取一块内存,修改链表信息,返回地址;如若申请96字节的内存,那么需要首先判断128字节的队列是否为空,从图5上看队列不空那么就从队列中分配一块。
若空,则需要从内存堆中分割一块对应尺寸的内存。首先需要判断内存堆中剩余内存量是否能满足申请,如不满足,则申请失败;若满足则从内存堆的底部分割一块对应大小尺寸的内存,修改内存堆信息,计算偏移量,最后返回地址。如果申请60字节的内存,如图5中该队列为空,那么就从内存堆中挖出一个64字节的内存给应用。
实施例二:内存释放
首先,根据地址确定需要释放的内存尺寸,根据地址计算偏移量,在偏移量数组中通过查找算法(例如二分法)查找到该地址,由前后偏移量可确认尺寸。
其次,根据地址判断该内存是否需要回收,如果需要,直接把内存释放到内存堆中,返回释放完成;如图5中,当前释放的为粗线框所示的128字节的内存,由于当前的内存块是系统最后一次分配出去的内存,因此在释放的时候,可以直接回收。否则,把内存存放到对应尺寸的队列中;在需要释放的内存块中保存之前的链表信息,然后把该内存放在链表头。
实施例三:内存回收
在本实施例中,内存回收的原则是回收最后一次从堆中分割出来并且空闲的内存,处理过程如下:
首先,偏移量数组是在内存申请时候,动态生成的由大到小排序的数组,因此数组的最后一个偏移地址即是当前需要回收的内存;根据该内存的地址和偏移值,计算内存尺寸;如图5中,可以看出粗线框中的128字节的内存是系统最后一次分配出去的内存,因此在回收的时候,需要先回收该内存块。
然后,根据尺寸和内存地址,在相应的链表中查找,如果未找到,标记该内存需要回收,在内存释放时进行回收;即,若确定当前需要回收128字节的内存块,那么需要在相应的内存空闲队列中查找这一内存块。
如果找到,从链表中摘除该内存,修改链表信息,把内存回收到内存堆中。如图5所示,如果粗线框中128字节的内存正好在对应的空闲链表中,那么就直接进行回收。
重复上述步骤,直到不需要回收为止。
基于同一发明构思,本发明实施例还提供了一种内存管理装置,其结构示意图如图6,包括:
配置单元601,用于根据应用系统的内存需求配置至少一个队列,不同队列管理不同尺寸的内存块,各队列管理的内存块尺寸由所述内存需求确定,应用系统中包含至少一个应用;
存储单元602,用于将应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中;
分配单元603,用于当应用系统中的应用发起内存块申请时,在各队列中查找与申请的内存块尺寸匹配的内存块并分配给应用。
在一个实施例中,配置单元601可以进一步用于为应用系统配置内存量大于应用系统的内存需求的内存堆;
分配单元603可以进一步用于在内存堆中分割与申请的内存块尺寸匹配的内存块,并分配给应用。
在一个实施例中,分配单元603可以进一步用于若内存堆中剩余内存量小于申请的内存块尺寸时,通知应用申请失败。
在一个实施例中,如图7所示,内存管理装置还可以包括:
回收单元701,用于应用系统已释放的内存块是内存堆最后一次分割的内存块时,回收该内存块。
在一个实施例中,分配单元603可以进一步用于从内存堆的底部依次分割与申请的内存块尺寸匹配的内存块。
在一个实施例中,回收单元701可以进一步用于在内存堆头部保存已分配的内存块地址与内存堆地址形成的偏移量,并将偏移量进行排序;以及,根据排序结果确定内存堆即将回收的内存块的地址。
在一个实施例中,配置单元601可以进一步用于当应用系统改变,或者应用系统的内存需求改变时,根据改变后的应用系统的内存需求重新配置至少一个队列。
从以上的描述中,可以看出,本发明实现了如下技术效果:
在本发明实施例中,应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中,当应用系统中的应用发起内存块申请时,在各队列中查找与申请的内存块尺寸匹配的内存块并分配给应用,充分利用了未被回收的内存块,提高内存的利用率。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种内存管理方法,其特征在于,包括:
根据应用系统的内存需求配置至少一个队列,不同队列管理不同尺寸的内存块,各队列管理的内存块尺寸由所述内存需求确定,所述应用系统中包含至少一个应用;
将所述应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中;以及
当所述应用系统中的应用发起内存块申请时,在所述各队列中查找与申请的内存块尺寸匹配的内存块并分配给所述应用。
2.根据权利要求1所述的方法,其特征在于,所述根据应用系统的内存需求配置至少一个队列之前,包括:
为所述应用系统配置内存量大于所述应用系统的内存需求的内存堆;以及
在所述各队列中未查找与申请的内存块尺寸匹配的内存块并分配给所述应用时,包括:
在所述内存堆中分割与所述申请的内存块尺寸匹配的内存块,并分配给所述应用。
3.根据权利要求2所述的方法,其特征在于,若所述内存堆中剩余内存量小于所述申请的内存块尺寸时,通知所述应用申请失败。
4.根据权利要求2所述的方法,其特征在于,所述应用系统已释放的内存块是所述内存堆最后一次分割的内存块时,回收该内存块。
5.根据权利要求4所述的方法,其特征在于,在所述内存堆中分割与所述申请的内存块尺寸匹配的内存块,并分配给所述应用,包括:从所述内存堆的底部依次分割与所述申请的内存块尺寸匹配的内存块。
6.根据权利要求5所述的方法,其特征在于,从所述内存堆的底部依次分割与所述申请的内存块尺寸匹配的内存块之后,还包括:
在所述内存堆头部保存已分配的内存块地址与所述内存堆地址形成的偏移量,并将所述偏移量进行排序;以及
根据排序结果确定所述内存堆即将回收的内存块的地址。
7.根据权利要求1至6任一项所述的方法,其特征在于,当所述应用系统改变,或者所述应用系统的内存需求改变时,根据改变后的应用系统的内存需求重新配置至少一个队列。
8.一种内存管理装置,其特征在于,包括:
配置单元,用于根据应用系统的内存需求配置至少一个队列,不同队列管理不同尺寸的内存块,各队列管理的内存块尺寸由所述内存需求确定,所述应用系统中包含至少一个应用;
存储单元,用于将所述应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中;
分配单元,用于当所述应用系统中的应用发起内存块申请时,在所述各队列中查找与申请的内存块尺寸匹配的内存块并分配给所述应用。
9.根据权利要求8所述的装置,其特征在于,所述配置单元,进一步用于为所述应用系统配置内存量大于所述应用系统的内存需求的内存堆;
所述分配单元,进一步用于在所述内存堆中分割与所述申请的内存块尺寸匹配的内存块,并分配给所述应用。
10.根据权利要求9所述的装置,其特征在于,所述分配单元,进一步用于若所述内存堆中剩余内存量小于所述申请的内存块尺寸时,通知所述应用申请失败。
11.根据权利要求9所述的装置,其特征在于,还包括:
回收单元,用于所述应用系统已释放的内存块是所述内存堆最后一次分割的内存块时,回收该内存块。
12.根据权利要求11所述的装置,其特征在于,所述分配单元,进一步用于从所述内存堆的底部依次分割与所述申请的内存块尺寸匹配的内存块。
13.根据权利要求12所述的装置,其特征在于,所述回收单元,进一步用于在所述内存堆头部保存已分配的内存块地址与所述内存堆地址形成的偏移量,并将所述偏移量进行排序;以及,根据排序结果确定所述内存堆即将回收的内存块的地址。
14.根据权利要求9至13任一项所述的装置,其特征在于,所述配置单元,进一步用于当所述应用系统改变,或者所述应用系统的内存需求改变时,根据改变后的应用系统的内存需求重新配置至少一个队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105294249A CN101984417A (zh) | 2010-11-01 | 2010-11-01 | 内存管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105294249A CN101984417A (zh) | 2010-11-01 | 2010-11-01 | 内存管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101984417A true CN101984417A (zh) | 2011-03-09 |
Family
ID=43641586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105294249A Pending CN101984417A (zh) | 2010-11-01 | 2010-11-01 | 内存管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101984417A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136105A (zh) * | 2011-11-28 | 2013-06-05 | 广东新岸线计算机系统芯片有限公司 | 一种内存管理方法、嵌入式系统和视频数据处理系统 |
CN103150257A (zh) * | 2013-02-28 | 2013-06-12 | 天脉聚源(北京)传媒科技有限公司 | 一种内存管理方法和装置 |
CN103324579A (zh) * | 2013-06-27 | 2013-09-25 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法 |
CN103488577A (zh) * | 2013-09-22 | 2014-01-01 | 北京航空航天大学 | 一种基于用途编号的用户程序内存分配及批量回收的方法及装置 |
CN104461915A (zh) * | 2014-11-17 | 2015-03-25 | 苏州阔地网络科技有限公司 | 一种在线课堂系统中内存动态分配方法及设备 |
CN105302733A (zh) * | 2014-07-03 | 2016-02-03 | 深圳市腾讯计算机系统有限公司 | 一种内存分配的方法及装置 |
CN105354147A (zh) * | 2014-08-20 | 2016-02-24 | 腾讯科技(深圳)有限公司 | 一种内存池管理方法及管理系统 |
CN106326004A (zh) * | 2016-08-17 | 2017-01-11 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种嵌入式数据库的动态内存分配方法 |
CN107168890A (zh) * | 2017-04-01 | 2017-09-15 | 杭州联吉技术有限公司 | 一种内存池的管理方法和装置 |
CN107797872A (zh) * | 2016-09-07 | 2018-03-13 | 北京百度网讯科技有限公司 | 用于传输信息的方法和装置 |
CN108959120A (zh) * | 2018-07-23 | 2018-12-07 | 上海梁维贸易有限公司 | 一种安全快速的计算机内存管理方法和装置 |
WO2019015395A1 (zh) * | 2017-07-18 | 2019-01-24 | 杭州海康威视数字技术股份有限公司 | 内存管理方法、装置、电子设备及存储介质 |
CN109445943A (zh) * | 2018-10-24 | 2019-03-08 | 郑州云海信息技术有限公司 | 内核态系统中i/o栈的内存管理方法、系统及相关装置 |
CN109684232A (zh) * | 2018-10-23 | 2019-04-26 | 许继集团有限公司 | 一种嵌入式协议栈内存管理方法 |
CN110532198A (zh) * | 2019-09-09 | 2019-12-03 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978893A (en) * | 1996-06-19 | 1999-11-02 | Apple Computer, Inc. | Method and system for memory management |
CN1996258A (zh) * | 2006-12-28 | 2007-07-11 | 武汉虹旭信息技术有限责任公司 | 一种动态内存池的实现方法 |
CN101320351A (zh) * | 2008-06-27 | 2008-12-10 | 华中科技大学 | 内存的分配、清理和释放方法及内存管理的装置 |
US20090216988A1 (en) * | 2008-02-27 | 2009-08-27 | Michael Palladino | Low overhead memory management system and method |
CN101673246A (zh) * | 2009-08-06 | 2010-03-17 | 深圳市融创天下科技发展有限公司 | 一种高效的先进先出数据池读写方法 |
-
2010
- 2010-11-01 CN CN2010105294249A patent/CN101984417A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978893A (en) * | 1996-06-19 | 1999-11-02 | Apple Computer, Inc. | Method and system for memory management |
CN1996258A (zh) * | 2006-12-28 | 2007-07-11 | 武汉虹旭信息技术有限责任公司 | 一种动态内存池的实现方法 |
US20090216988A1 (en) * | 2008-02-27 | 2009-08-27 | Michael Palladino | Low overhead memory management system and method |
CN101320351A (zh) * | 2008-06-27 | 2008-12-10 | 华中科技大学 | 内存的分配、清理和释放方法及内存管理的装置 |
CN101673246A (zh) * | 2009-08-06 | 2010-03-17 | 深圳市融创天下科技发展有限公司 | 一种高效的先进先出数据池读写方法 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136105B (zh) * | 2011-11-28 | 2017-06-09 | 广东新岸线计算机系统芯片有限公司 | 一种内存管理方法、嵌入式系统和视频数据处理系统 |
CN103136105A (zh) * | 2011-11-28 | 2013-06-05 | 广东新岸线计算机系统芯片有限公司 | 一种内存管理方法、嵌入式系统和视频数据处理系统 |
CN103150257A (zh) * | 2013-02-28 | 2013-06-12 | 天脉聚源(北京)传媒科技有限公司 | 一种内存管理方法和装置 |
CN103324579A (zh) * | 2013-06-27 | 2013-09-25 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法 |
CN103488577A (zh) * | 2013-09-22 | 2014-01-01 | 北京航空航天大学 | 一种基于用途编号的用户程序内存分配及批量回收的方法及装置 |
CN105302733B (zh) * | 2014-07-03 | 2019-05-31 | 深圳市腾讯计算机系统有限公司 | 一种内存分配的方法及装置 |
CN105302733A (zh) * | 2014-07-03 | 2016-02-03 | 深圳市腾讯计算机系统有限公司 | 一种内存分配的方法及装置 |
CN105354147A (zh) * | 2014-08-20 | 2016-02-24 | 腾讯科技(深圳)有限公司 | 一种内存池管理方法及管理系统 |
CN104461915A (zh) * | 2014-11-17 | 2015-03-25 | 苏州阔地网络科技有限公司 | 一种在线课堂系统中内存动态分配方法及设备 |
CN104461915B (zh) * | 2014-11-17 | 2017-06-20 | 阔地教育科技有限公司 | 一种在线课堂系统中内存动态分配方法及设备 |
CN106326004A (zh) * | 2016-08-17 | 2017-01-11 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种嵌入式数据库的动态内存分配方法 |
CN107797872A (zh) * | 2016-09-07 | 2018-03-13 | 北京百度网讯科技有限公司 | 用于传输信息的方法和装置 |
CN107168890A (zh) * | 2017-04-01 | 2017-09-15 | 杭州联吉技术有限公司 | 一种内存池的管理方法和装置 |
CN107168890B (zh) * | 2017-04-01 | 2021-03-19 | 杭州联吉技术有限公司 | 一种内存池的管理方法和装置 |
WO2019015395A1 (zh) * | 2017-07-18 | 2019-01-24 | 杭州海康威视数字技术股份有限公司 | 内存管理方法、装置、电子设备及存储介质 |
US11604726B2 (en) | 2017-07-18 | 2023-03-14 | Hangzhou Hikvision Digital Technology Co., Ltd | Memory management method, electronic device and storage medium |
CN108959120A (zh) * | 2018-07-23 | 2018-12-07 | 上海梁维贸易有限公司 | 一种安全快速的计算机内存管理方法和装置 |
CN109684232A (zh) * | 2018-10-23 | 2019-04-26 | 许继集团有限公司 | 一种嵌入式协议栈内存管理方法 |
CN109684232B (zh) * | 2018-10-23 | 2021-09-14 | 许继集团有限公司 | 一种嵌入式协议栈内存管理方法 |
CN109445943A (zh) * | 2018-10-24 | 2019-03-08 | 郑州云海信息技术有限公司 | 内核态系统中i/o栈的内存管理方法、系统及相关装置 |
CN110532198A (zh) * | 2019-09-09 | 2019-12-03 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
CN110532198B (zh) * | 2019-09-09 | 2023-08-08 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101984417A (zh) | 内存管理方法及装置 | |
CN100530140C (zh) | 应用程序级的内存管理方法 | |
CN108132842B (zh) | 一种嵌入式软件内存管理系统 | |
CN104731799B (zh) | 内存数据库管理装置 | |
CN101221536B (zh) | 嵌入式系统的内存管理方法及装置 | |
CN103034544B (zh) | 一种用户态与内核态共享内存的管理方法和装置 | |
CN100517240C (zh) | 一种嵌入式操作系统的内存池分配方法 | |
CN101968772B (zh) | 嵌入式系统高效内存池的实现方法 | |
CN102253897B (zh) | 一种内存池管理方法及装置 | |
CN108038002A (zh) | 一种嵌入式软件内存管理方法 | |
CN101320351A (zh) | 内存的分配、清理和释放方法及内存管理的装置 | |
CN106293924A (zh) | 安卓系统的内存管理方法及装置 | |
CN104486452A (zh) | 一种地址的处理方法、相关设备和系统 | |
CA2545507A1 (en) | Apparatus, system, and method for on-demand control of grid system resources | |
CN103810115B (zh) | 一种内存池的管理方法和装置 | |
CN105718319B (zh) | 一种内存池版图解析方法和内存池装置 | |
CN101853210A (zh) | 一种内存管理方法及装置 | |
CN105302737A (zh) | 一种内存分配管理方法及系统 | |
CN104601680A (zh) | 一种资源管理方法及装置 | |
CN101271428A (zh) | 一种对象数据存储管理的装置和方法 | |
CN102053916B (zh) | 一种分配内核大片连续内存的方法 | |
CN103488577A (zh) | 一种基于用途编号的用户程序内存分配及批量回收的方法及装置 | |
CN104572498A (zh) | 报文的缓存管理方法和装置 | |
CN102082832A (zh) | 一种分布式文件系统中的数据存储方法和装置 | |
CN108255608A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110309 |