CN100386745C - 用于通过面向对象的程序执行动态内存管理的方法和设备 - Google Patents

用于通过面向对象的程序执行动态内存管理的方法和设备 Download PDF

Info

Publication number
CN100386745C
CN100386745C CNB2004100119017A CN200410011901A CN100386745C CN 100386745 C CN100386745 C CN 100386745C CN B2004100119017 A CNB2004100119017 A CN B2004100119017A CN 200410011901 A CN200410011901 A CN 200410011901A CN 100386745 C CN100386745 C CN 100386745C
Authority
CN
China
Prior art keywords
memory block
tabulation
free time
threshold value
reuse
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.)
Expired - Fee Related
Application number
CNB2004100119017A
Other languages
English (en)
Other versions
CN1604051A (zh
Inventor
李宇珩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1604051A publication Critical patent/CN1604051A/zh
Application granted granted Critical
Publication of CN100386745C publication Critical patent/CN100386745C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本公开是一种方法和设备,用于通过面向对象的程序运行动态内存管理,通过该方法和设备,创建频繁和生存期限短暂的对象被按顺序分配给单位内存块。在从单位内存块释放之后,该对象被添加到空闲重用列表上,以便当有对相同对象大小的分配的调用时被重用。这有利于增强系统性能。

Description

用于通过面向对象的程序执行动态内存管理的方法和设备
技术领域
本发明一般地涉及面向对象的软件系统,更加特别地涉及在该系统中用于对象分配的动态内存管理。
背景技术
面向对象的程序(OOP)已经被认为具有超出典型的过程式程序的优点,其包括代码复用继承、数据抽象的实现、数据的多态的真实性(factuality)、重载操作符的便利性。OOP的那些丰富的特性正不断地变得更加先进。同时,从日益增长的数量的研究来看,现在动态内存管理(DMM)被认为是软件系统的运行中的重要部分,其消耗掉其中30%的程序运行时间。因此,动态内存管理的重要性变得更大,并且实施DMM的更高效率需要提高系统中的程序运行速度。
如图1和2所示,通常以不考虑对象大小的内存分配方式实行DMM。参照图1,在步骤S103中,如果有通过操作系统(OS)的方式对内存的请求,例如通过内存管理(或分配)函数malloc()而对函数sbrk()的调用,则将该内存分配给堆。然后,在步骤105中,由内存管理单元产生空闲链接列表,以将对象分配给被分割成足够大小的分区的内存(参照图2的过程A)。
如果有对对象分配的请求,则在步骤S107扫描空闲链接列表,以寻找具有与请求分配的对象相同大小的节点。在步骤S109中,确定是否存在与所请求的对象的大小相同的节点。如果空闲链接列表具有与所请求的对象的大小相同的节点,则从空闲链接列表释放该节点,然后将其放入步骤S111中的对象分配过程。另一方面,如果在空闲链接列表中没有与所请求的对象大小一致的节点,则在步骤S113确定所请求的对象的大小是否大于空闲链接列表的节点。如果所请求的对象大于空闲链接列表的节点,则在步骤S115,将空闲链接列表的节点合并成单个节点(参照图2的过程B),并且在步骤S117,从将用于分配对象的空闲链接列表释放所合并的节点。反之,如果所请求的对象小于空闲链接列表的节点,则在步骤S119中,该节点被分割成较小的节点(参照图2的过程C),并且在步骤S121,从将用于分配对象的空闲链接列表释放所分割的节点。
顺便提及,如果删除所分配的对象,则将分配给该对象的节点插入空闲链接列表,用于重用。这样做时,可以将大到不能插入到空闲链接列表中的节点分割成足以插入其中的更小节点。
然而,DMM的常规方式在运行时消耗掉相当可观的运行时间,因为其本质上需要扫描空闲链接列表、以及合并和分割组成该空闲链接列表的节点的条件。有时候,它会与应当完全搜索空闲链接列表的最坏情况一起出现。
此外,无论何时有对象分配的请求,均强行调用函数malloc(),以及实施对空闲链接列表的扫描及节点的合并与分割。
发明内容
本发明提出了一种方法和设备,用于运行具有提高了的性能的动态内存管理。
本发明还提出了一种方法和设备,用于在有效地较短的运行时间内执行动态内存管理。
根据本发明的一方面,实施了一种用于通过面向对象的程序的动态内存管理的方法,其包括以下步骤:形成用于对象分配的空闲链接列表;通过参照该空闲链接列表,将超过预定阈值的大对象分配给通过合并多个节点以与该大对象的大小相同而产生的节点;顺序将小于或与阈值相同的小对象分配给具有大于该阈值的存储容量的内存块;当在空闲重用列表中存在对应于该对象的可重用对象时,将该对象分配给被指定给该可重用对象的内存块的特定区域。
该内存块与数据结构相关联,该数据结构包括:有关所分配的对象的信息;地址指针,其指明所分配的对象被指定的地址;以及释放对象指针,其指示从内存块释放的对象。参照阈值,由包括空指针元素的排列形成空闲重用列表。对应于所释放的对象的空指针中的一个指示所释放的对象。
空指针指示当前一个所释放的对象,被指定给当前释放的对象的释放对象指针指示前一个所释放的对象。
阈值的大小通过分析在面向对象的程序中频繁创建和消失的对象而确定。
结合附图,根据对其示例实施例的下列详细描述,将会更好地理解本发明,并且,其范围将在所附权利要求中指出。
附图说明
当结合附图时,通过参照下面的描述,可以对本发明有更加完整的理解,其中:
图1是示出了用于对象的内存分配的传统过程的流程图;
图2图示了图1所示的内存分配的序列;
图3是根据本发明的用于对象分配和重用的数据结构的图示;
图4是图示了根据本发明的对象分配过程的流程图;
图5是根据本发明的对象分配的图示;
图6是图示了根据本发明的对象释放的过程的流程图;
图7是图示了根据本发明的空闲重用列表的模式的示意图;以及
图8是图示了根据本发明的对象分配和重用的过程的流程图。
具体实施方式
应当理解,对本优选实施例的描述只是示意性的,并且不应当理解为限制性的意义。在下面的详细描述中,阐述了几个特定的细节,以提供对本发明的透彻理解。然而,对于本领域技术人员来说,显而易见的是,可以没有这些特定的细节而实践本发明。
现在,将结合附图来说明本发明的实践实施例。
[数据结构]
图3图示了在面向对象的系统中用于对象分配和重用的数据结构。用于对象分配和重用的该数据结构包括用于对象大小(alloc_size)、地址指针(return_pointer)、以及释放对象指针(next_f)的域。alloc_size指示将被分配的对象的大小。return_pointer指示将指定给对象的内存块地址。next_f表示将从内存块释放的对象。
[对象分配]
图4和5图示了在本面向对象的系统中分配对象的过程和特征。参照图4,在步骤S401中如果有对对象分配的请求,则在步骤S403确定所请求的对象的大小是否小于预定的阈值或者与其相同。该阈值可以从对对象分配模式的分析而获得,该模式实际上从面向对象的程序(OOP)产生。例如,从对OOP例如C++程序的分析注意到,几乎超过90%的对象都在其中重用,其大小非常小,最多不超过512字节。因此,关于对象的大小,将阈值确立在512字节上是合理的。
如果所请求的对象大小小于阈值或与阈值相同,则在步骤S405中,提供预定存储容量的内存块以分配所请求的对象。该内存块可以从由内存管理函数malloc()形成的空闲链接列表得到。该内存块的大小可以大于阈值,例如8K字节。
在步骤S407中,小于阈值的对象被按照如图5所示的顺序分配进内存块,依据其分配大小而占用该内存块。在内存块中,新分配的对象被布置在其中,以跟在先前分配的对象之后。因为是以预定的顺序将对象分配进内存块,所以在将任意对象分配给内存块之前,可以容易地知道返回地址。对数据结构大小、所请求的对象大小、以及当前地址的预先确认使得先前所分配的对象的最后地址被容易地估计出来。通过将先前所分配的对象的最后地址和将分配给该最后地址的对象的大小相加,而获得将分配的对象的返回地址。当按顺序将对象分配给内存块时,释放对象指针指示“NULL”。
因为对象被分配给这样的单个内存块,所以有可能降低对函数malloc()的调用的次数。在本发明的这个实施例中,消耗了用于前面分配的一个内存块之后的进一步的对象分配将参照空闲链接列表,该空闲链接列表借助于函数malloc()而将新的内存块指定到其中。
在步骤S403确定了所请求的对象大小大于阈值之后,借助于内存管理函数malloc()而转向用于对象分配的操作。也就是说,在步骤S409,扫描空闲链接列表,以找到具有与被请求分配的对象相同大小的节点。然后,删除与所请求的对象相同大小的节点,并将所请求的对象分配到该节点被删除的位置上。实际上,很少创建这种具有超过阈值的更大大小的对象,其对用于扫描空闲链接列表、以及合并和分割较大的对象上的节点的时间消耗来说,是可以忽略的。
[对象释放和空闲重用列表]
图6图示了根据本发明的用于释放对象的处理步骤。首先,在步骤S601中,请求解除分配已被分配给内存块的对象。然后,在步骤S603将请求解除分配的对象的大小与阈值相比较。
如果被请求解除分配的对象大小小于或等于阈值,则从内存块释放该对象,并将其添加到空闲重用列表上用于重用。如果被请求解除分配的对象的大小大于阈值,则在步骤S607中,在内存管理函数malloc()的控制下释放该对象。
通过利用指针型排列(arrangement)的方式,可以容易地形成空闲重用列表。将空闲重用列表中排列的大小设置到等于阈值,并以“NULL”的状态初始化该排列中指定的指针。当从内存块释放的对象被添加到空闲重用列表上时,空闲重用列表中对应于该处的指针指示所释放的对象。这么做时,如果先前释放的具有相同大小的对象链接到空闲重用列表,则对应于当前释放的对象的、已用NULL状态初始化的释放对象指针next_f指示以前释放的对象,而存储在排列中的指针指示当前释放的对象。
另外,当前释放的对象可以链接到与空闲重用列表连接的先前释放的对象,其意味着对应于先前释放的对象的指针next_f指示当前释放的对象。
[空闲重用列表的创建]
图7图示了空闲重用列表的创建模式。参照图7,所释放的对象被添加到该列表上。通过采用指针型排列,将空闲重用列表表示为索引的列表。如果将对象从内存块释放出来,则存储在排列中的与那里相对应的元素中的指针指示所释放的对象。换句话说,所释放的对象被链接到空闲重用列表。因此,通过确认存储在该排列的每个元素中的指针是否处于NULL状态,很容易识别出列表中可重用对象的存在。
作为示例,如图7所示,确立阈值为512字节,空闲重用列表的排列由512个NULL状态指针的元素组成。如果从内存块释放1字节大小的对象,则存储在排列的第一元素中的NULL状态指针P1表示所释放的1字节对象。并且,当再次从内存块释放另一个1字节对象时,指针P1指示当前所释放的对象,并且,释放对象指针next_f指示先前所释放的对象。利用该方式,从内存块释放的对象被添加到空闲重用列表上。
索引的空闲重用列表有利于添加所释放的对象和找到可重用对象。
[对象分配和重用]
图8示出了根据本发明的处理对象分配和重用的流程。参照图8,在程序(即面向对象的程序)的开始,在步骤S801,内存管理函数malloc()通过操作系统(OS)将内存分配给该程序。接下来,在步骤S803,比较请求分配的对象和阈值的大小。如果请求分配的对象的大小大于阈值,则在步骤S805中,函数malloc()提供具有预定容量(例如8K字节)的内存块。
然后,在步骤S807,确定所请求的对象是否为新分配的,其为用来确认存储在对应于所请求的对象的排列的元素中的指针保持在NULL状态的过程。除非该指针为NULL状态(即如果有可重用对象),则在步骤S809中,通过存储在排列中的指针所指明的可重用对象的地址指针,将所请求的对象分配给该对象返回的内存块的地址。并且,从空闲重用列表删除该可重用对象。
如果在步骤S807中确定没有可重用对象,则依据图4和5的过程进行分配处理。
同时,如果在步骤S803,所请求的用于分配的对象的大小大于阈值,则参照空闲链接列表,由内存管理函数malloc()进行分配。
基于前面所述,通过利用依据对象大小区分的内存管理,系统性能得以增强。因为频繁创建和消失的小对象被专门地驱赶进内存块中的具有顺序连贯性的分配系统,由于用于内存管理函数malloc()的调用的次数比常规大大减少,因此缩短了用于对象分配的处理时间。此外,因为索引的空闲重用列表被提供用来重用从内存块中释放的对象,所以不仅减少了系统中的处理开销,还增加了系统管理速度。
尽管已经出于示意的目的阐述了本发明的优选实施例,但本领域技术人员将会理解,在不偏离如所附权利要求所述的本发明的范围和精神的情况下,进行各种修改、添加和置换是可能的。

Claims (12)

1.一种用于通过面向对象的程序进行动态内存管理的方法,该方法包括以下步骤:
提供具有预定存储容量的内存块;
将对象顺序连续分配给该内存块;
提供空闲重用列表,从内存块释放的对象作为对应于所释放的对象的可重用对象而被添加到该空闲重用列表
对应于所请求的用于分配的对象而在空闲重用列表中找到可重用对象;
当在空闲重用列表中有对应于所请求的对象的可重用对象时,将该所请求的对象分配给被指定给该可重用对象的内存块的特定域,并从空闲重用列表删除可重用对象;以及
当空闲重用列表缺少对应于所请求的对象的可重用对象时,在内存块中进行排在最末次序上的对象之后的新的分配。
2.根据权利要求1的方法,还包括以下步骤:
提供用于对象分配的空闲链接列表;
当有对小于阈值或与阈值相同的小对象的分配请求时,参照空闲链接列表的节点,指定具有至少大于阈值的预定的存储容量的内存块,该内存块的存储容量足以包含请求分配的小对象;以及
当有对大对象的分配请求时,参照空闲链接列表创建对应于超过阈值的大对象的节点。
3.一种用于通过面向对象的程序进行动态内存管理的方法,该方法包括以下步骤:
(a)提供用于分配多个对象的内存块;
(b)提供空闲重用列表;
(c)当在空闲重用列表中有对应于所请求的对象的可重用对象时,将该所请求的对象分配给被指定给该可重用对象的内存块的特定域,并从空闲重用列表删除该可重用对象;
(d)当空闲重用列表缺少对应于所请求的对象的可重用对象时,在内存块中进行排在最后次序上的对象之后的新的分配;以及
(e)将从内存块释放的对象添加到与该被释放的对象相对应的空闲重用列表。
4.根据权利要求3的方法,还包括在提供内存块之前比较所请求的对象的大小和预定的阈值的步骤,其中,利用步骤(a)到(d)管理小于阈值或与阈值相同的对象,以及借助于内存管理函数管理大于阈值的对象。
5.根据权利要求3和4中的一个的方法,其中,所述内存块与用于被分配给该内存块的对象的数据结构相关联,该数据结构包括:有关所分配的对象的信息、指示所分配的对象被指定的地址的地址指针、以及指示从所述内存块释放的对象的释放对象指针;其中,参照预定的阈值的大小,由包括空指针的元素的排列形成空闲重用列表;以及,其中,对应于所释放的对象的所述空指针中的一个指示该所释放的对象。
6.根据权利要求5的方法,其中,当所述空指针指示当前的一个所释放的对象时,被指定给该当前释放的对象的释放对象指针指示前一个所释放的对象。
7.一种用于通过面向对象的程序进行动态内存管理的方法,该方法包括以下步骤:
形成用于对象分配的空闲链接列表;
提供空闲重用列表;
参照空闲链接列表,将超过预定阈值的大对象分配给节点,其中通过合并多个节点而生成该节点,以与所述大对象的大小相同;
按顺序将小于或与阈值相同的小对象分配给具有大于该阈值的存储容量的内存块;以及
当空闲重用列表中有对应于所述对象的可重用对象时,将所述对象分配给被指定给该可重用对象的内存块的特定域。
8.根据权利要求7的方法,其中,所述内存块与数据结构相关联,该数据结构包括:用于所分配的对象的信息、指示所分配的对象被指定的地址的地址指针、以及指示从所述内存块释放的对象的释放对象指针;其中,参照阈值,由包括空指针的元素的排列形成空闲重用列表;以及,其中,对应于所释放的对象的所述空指针中的一个指示所释放的对象。
9.根据权利要求8的方法,其中,当所述空指针指示当前的一个所释放的对象时,被指定给当前释放的对象的释放对象指针指示前一个所释放的对象。
10.根据权利要求7的方法,还包括,通过分析在面向对象的程序中频繁创建和消失的对象,确立阈值的大小的步骤。
11.一种可通过面向对象的程序进行操作的设备,包括:
被配置用来形成用于对象分配的空闲链接列表的装置;
被配置用来提供空闲重用列表的装置;
被配置用来通过参照空闲链接列表,将超过预定阈值的大对象分配给节点,其中,通过合并多个节点以与大对象的大小相等而生成该节点的装置;
被配置用来按顺序将小于或与阈值相同的小对象分配给具有大于该阈值的存储容量的内存块的装置;以及
被配置用来当在空闲重用列表中有对应于所述对象的可重用对象时,将所述对象分配给被指定给该可重用对象的内存块的特定域的装置。
12.根据权利要求11的设备,其中,参照阈值,由包括空指针的元素的排列形成所述空闲重用列表;以及,其中,对应于所释放的对象的空指针中的一个指示该所释放的对象。
CNB2004100119017A 2003-09-30 2004-09-24 用于通过面向对象的程序执行动态内存管理的方法和设备 Expired - Fee Related CN100386745C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/674,277 US7325118B2 (en) 2003-09-30 2003-09-30 Method and apparatus for executing dynamic memory management with object-oriented program
US10/674,277 2003-09-30

Publications (2)

Publication Number Publication Date
CN1604051A CN1604051A (zh) 2005-04-06
CN100386745C true CN100386745C (zh) 2008-05-07

Family

ID=33418855

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100119017A Expired - Fee Related CN100386745C (zh) 2003-09-30 2004-09-24 用于通过面向对象的程序执行动态内存管理的方法和设备

Country Status (5)

Country Link
US (2) US7325118B2 (zh)
JP (1) JP4684607B2 (zh)
KR (1) KR101076808B1 (zh)
CN (1) CN100386745C (zh)
GB (2) GB2446071B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011214A1 (en) * 2005-07-06 2007-01-11 Venkateswararao Jujjuri Oject level adaptive allocation technique
US7809918B1 (en) * 2005-07-22 2010-10-05 American Megatrends, Inc. Method, apparatus, and computer-readable medium for providing physical memory management functions
US7926071B2 (en) * 2005-10-20 2011-04-12 Microsoft Corporation Load balancing interfaces
US8234378B2 (en) 2005-10-20 2012-07-31 Microsoft Corporation Load balancing in a managed execution environment
KR100622114B1 (ko) * 2006-02-24 2006-09-18 주식회사 퓨전소프트 임베디드 시스템에서의 효율적인 동적 메모리 관리방법 및그 시스템
US20080140875A1 (en) * 2006-12-12 2008-06-12 Inventec Corporation Data access method
JP5153539B2 (ja) * 2008-09-22 2013-02-27 株式会社日立製作所 メモリ管理方法およびその方法を用いるコンピュータ
US7937625B2 (en) * 2008-09-26 2011-05-03 Microsoft Corporation Evaluating effectiveness of memory management techniques selectively using mitigations to reduce errors
US7949903B2 (en) * 2008-09-26 2011-05-24 Microsoft Corporation Memory management techniques selectively using mitigations to reduce errors
US8972994B2 (en) 2009-12-23 2015-03-03 Intel Corporation Method and apparatus to bypass object lock by speculative execution of generated bypass code shell based on bypass failure threshold in managed runtime environment
GB201004675D0 (en) * 2010-03-19 2010-05-05 Imagination Tech Ltd Memory management system
CN101847157B (zh) * 2010-04-27 2012-09-05 北京神州泰岳软件股份有限公司 一种基于ussd的手机浏览器初始化方法
CN101853210A (zh) * 2010-05-25 2010-10-06 惠州华阳通用电子有限公司 一种内存管理方法及装置
KR101141884B1 (ko) * 2010-08-05 2012-05-03 성균관대학교산학협력단 동적 순환 메모리 할당 방법 및 이러한 방법을 사용하는 메모리 장치
US8266342B1 (en) * 2011-06-24 2012-09-11 Hitachi, Ltd. Storage system
CN103186469A (zh) * 2011-12-27 2013-07-03 上海博泰悦臻电子设备制造有限公司 内存分配方法及装置、内存的回收方法
CN103809982A (zh) * 2014-02-26 2014-05-21 能力天空科技(北京)有限公司 一种排列方法及系统
KR101771289B1 (ko) 2014-05-19 2017-08-24 엘에스산전 주식회사 Plc 프로그램 관리 장치
CN106294190B (zh) * 2015-05-25 2020-10-16 中兴通讯股份有限公司 一种存储空间管理方法及装置
EP3113026B1 (en) * 2015-06-29 2019-07-24 aicas GmbH Automatic memory management using a memory management unit
US9942324B2 (en) * 2015-08-05 2018-04-10 Futurewei Technologies, Inc. Rebalancing and elastic storage scheme with elastic named distributed circular buffers
KR101783770B1 (ko) 2016-05-01 2017-10-11 충북대학교 산학협력단 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법
CN106293939B (zh) * 2016-08-05 2019-10-18 北京航空航天大学 一种在内存垃圾收集器中动态重用对象的方法
CN106776375A (zh) * 2016-12-27 2017-05-31 东方网力科技股份有限公司 一种磁盘内部的数据缓存方法及装置
CN107861887B (zh) * 2017-11-30 2021-07-20 科大智能电气技术有限公司 一种串行易失性存储器的控制方法
CN108196938B (zh) * 2017-12-27 2021-10-29 努比亚技术有限公司 内存调用方法、移动终端及计算机可读存储介质
US11468312B2 (en) * 2018-02-02 2022-10-11 Samsung Electronics Co., Ltd. Memory management for machine learning training on GPU
CN108600119A (zh) * 2018-04-02 2018-09-28 北京理工大学 一种面向c-ran基带处理的数据缓冲区管理方法
CN109542798B (zh) * 2018-10-30 2020-11-24 潍坊歌尔微电子有限公司 一种动态分配物理地址的方法、装置及电子设备
CN112988609B (zh) * 2019-12-02 2023-05-02 杭州海康机器人股份有限公司 数据处理方法、装置、存储介质和客户端
US11474938B2 (en) * 2021-01-18 2022-10-18 EMC IP Holding Company LLC Data storage system with multiple-size object allocator for disk cache

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1289967A (zh) * 1999-09-24 2001-04-04 国际商业机器公司 Java卡小应用程序中数据目标的动态内存管理
US6308320B1 (en) * 1999-01-15 2001-10-23 Hewlett-Packard Company Method and apparatus for incremental selective compilation of intermediate code files during computer system compilation and linking
US6438560B1 (en) * 1999-09-16 2002-08-20 International Business Machines Corporation Reuse of immutable objects during object creation
CN1393780A (zh) * 2001-06-28 2003-01-29 华为技术有限公司 自适应动态内存管理方法
US20030028739A1 (en) * 2001-07-18 2003-02-06 Li Richard Chi Leung Method and apparatus of storage allocation/de-allocation in object-oriented programming environment

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0318935A (ja) * 1989-06-15 1991-01-28 Hitachi Ltd データリストに対するアクセスの直列化方式
JPH0756799A (ja) * 1993-08-12 1995-03-03 Fujitsu Ltd 記憶領域管理方法
US5784698A (en) * 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
US5784699A (en) * 1996-05-24 1998-07-21 Oracle Corporation Dynamic memory allocation in a computer using a bit map index
CA2212354C (en) * 1997-07-31 2000-07-11 Ibm Canada Limited - Ibm Canada Limitee Method for heap management of fixed sized objects using pages
US6209066B1 (en) * 1998-06-30 2001-03-27 Sun Microsystems, Inc. Method and apparatus for memory allocation in a multi-threaded virtual machine
US6701420B1 (en) * 1999-02-01 2004-03-02 Hewlett-Packard Company Memory management system and method for allocating and reusing memory
US6324631B1 (en) * 1999-06-17 2001-11-27 International Business Machines Corporation Method and system for detecting and coalescing free areas during garbage collection
US6647479B1 (en) * 2000-01-03 2003-11-11 Avid Technology, Inc. Computer file system providing looped file structure for post-occurrence data collection of asynchronous events
US6704851B2 (en) * 2000-04-26 2004-03-09 Aicas Gmbh Method of dynamically allocating a memory
US7254597B2 (en) * 2002-01-11 2007-08-07 Sun Microsystems, Inc. Lock-free implementation of dynamic-sized shared data structure
US6874004B2 (en) * 2002-04-30 2005-03-29 Microsoft Corporation Method and system for detecting cross linked files

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6308320B1 (en) * 1999-01-15 2001-10-23 Hewlett-Packard Company Method and apparatus for incremental selective compilation of intermediate code files during computer system compilation and linking
US6438560B1 (en) * 1999-09-16 2002-08-20 International Business Machines Corporation Reuse of immutable objects during object creation
CN1289967A (zh) * 1999-09-24 2001-04-04 国际商业机器公司 Java卡小应用程序中数据目标的动态内存管理
CN1393780A (zh) * 2001-06-28 2003-01-29 华为技术有限公司 自适应动态内存管理方法
US20030028739A1 (en) * 2001-07-18 2003-02-06 Li Richard Chi Leung Method and apparatus of storage allocation/de-allocation in object-oriented programming environment

Also Published As

Publication number Publication date
US20080065841A1 (en) 2008-03-13
GB2446071B (en) 2008-12-17
US20050071597A1 (en) 2005-03-31
GB2406932B (en) 2008-06-25
JP4684607B2 (ja) 2011-05-18
GB2446071A (en) 2008-07-30
US7325118B2 (en) 2008-01-29
JP2005108216A (ja) 2005-04-21
KR101076808B1 (ko) 2011-10-25
GB0421341D0 (en) 2004-10-27
US7624247B2 (en) 2009-11-24
GB0803876D0 (en) 2008-04-09
CN1604051A (zh) 2005-04-06
GB2406932A (en) 2005-04-13
KR20050031849A (ko) 2005-04-06

Similar Documents

Publication Publication Date Title
CN100386745C (zh) 用于通过面向对象的程序执行动态内存管理的方法和设备
CN100382048C (zh) 一种内存管理方法
CN1329844C (zh) 自适应垃圾收集方法及设备
CN106681829A (zh) 一种内存管理方法及系统
EP0686915A3 (en) Hierarchical resource management method
US20020144073A1 (en) Method for memory heap and buddy system management for service aware networks
CN104731799B (zh) 内存数据库管理装置
CN101142552A (zh) 计算系统中的资源分配
CN108932271B (zh) 一种文件管理方法及装置
CN112243044B (zh) 容器地址分配方法及装置
AU669988B2 (en) Method and apparatus for goal processing memory management
CN104506669B (zh) 一种面向分布式网络仿真平台的ip地址分配系统及方法
CN103455433A (zh) 内存管理方法及系统
US6976021B2 (en) Method, system, and computer program product for managing a re-usable resource with linked list groups
EP0844564A2 (en) Memory manager system
CN113961378B (zh) 基于共享内存的进程间通信方法、装置及电子设备
CN112346848A (zh) 一种管理内存池的方法、装置及终端
CN105740054A (zh) 一种虚拟机管理方法及装置
CN107181715B (zh) 一种业务校验方法和装置
CN113315826B (zh) 区块链的管理方法、装置、管理服务节点及存储介质
CN101582031B (zh) 一种基于结构化语言的链表管理方法
US6822941B1 (en) Method and network element for relaying event messages
CN108009005A (zh) 一种线程池管理方法及装置
CN114694753A (zh) 一种核酸序列比对方法、装置、设备及可读存储介质
JPH08249225A (ja) メモリ管理装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080507

Termination date: 20210924