CN1604051A - 用于通过面向对象的程序执行动态内存管理的方法和设备 - Google Patents
用于通过面向对象的程序执行动态内存管理的方法和设备 Download PDFInfo
- Publication number
- CN1604051A CN1604051A CNA2004100119017A CN200410011901A CN1604051A CN 1604051 A CN1604051 A CN 1604051A CN A2004100119017 A CNA2004100119017 A CN A2004100119017A CN 200410011901 A CN200410011901 A CN 200410011901A CN 1604051 A CN1604051 A CN 1604051A
- Authority
- CN
- China
- Prior art keywords
- memory block
- threshold value
- tabulation
- free time
- reusable
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000006870 function Effects 0.000 claims description 13
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File 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 (14)
1.一种方法,用于通过面向对象的程序进行动态内存管理,该方法包括以下步骤:
提供具有预定存储容量的内存块;以及
将对象顺序连续分配给该内存块。
2.根据权利要求1的方法,还包括提供空闲重用列表的步骤,从内存块释放的对象作为对应于所释放的对象的可重用对象而被添加到该空闲重用列表。
3.根据权利要求2的方法,还包括以下步骤:
对应于所请求的用于分配的对象而在空闲重用列表中找到可重用对象;
当在空闲重用列表中有对应于所请求的对象的可重用对象时,将该所请求的对象分配给被指定给该可重用对象的内存块的特定域,并从空闲重用列表删除可重用对象;以及
当空闲重用列表缺少对应于所请求的对象的可重用对象时,在内存块中进行排在最末次序上的对象之后的新的分配。
4.根据权利要求1到3中的一个的方法,还包括以下步骤:
提供用于对象分配的空闲链接列表;
当有对小于阈值或与阈值相同的小对象的分配请求时,参照空闲链接列表的节点,指定具有至少大于阈值的预定的存储容量的内存块,该内存块的存储容量足以包含请求分配的小对象;以及
当有对大对象的分配请求时,参照空闲链接列表创建对应于超过阈值的大对象的节点。
5.一种方法,用于通过面向对象的程序进行动态内存管理,该方法包括以下步骤:
(a)提供用于分配多个对象的内存块;
(b)当在空闲重用列表中有对应于所请求的对象的可重用对象时,将该所请求的对象分配给被指定给该可重用对象的内存块的特定域,并从空闲重用列表删除该可重用对象;
(c)当空闲重用列表缺少对应于所请求的对象的可重用对象时,在内存块中进行排在最后次序上的对象之后的新的分配;以及
(d)将从内存块释放的对象添加到与该被释放的对象相对应的空闲重用列表。
6.根据权利要求5的方法,还包括在提供内存块之前比较所请求的对象的大小和预定的阈值的步骤,其中,利用步骤(a)到(d)管理小于阈值或与阈值相同的对象,以及借助于内存管理函数管理大于阈值的对象。
7.根据权利要求5和6中的一个的方法,其中,所述内存块与用于被分配给该内存块的对象的数据结构相关联,该数据结构包括:有关所分配的对象的信息、指示所分配的对象被指定的地址的地址指针、以及指示从所述内存块释放的对象的释放对象指针;其中,参照预定的阈值的大小,由包括空指针的元素的排列形成空闲重用列表;以及,其中,对应于所释放的对象的所述空指针中的一个指示该所释放的对象。
8.根据权利要求7的方法,其中,当所述空指针指示当前的一个所释放的对象时,被指定给该当前释放的对象的释放对象指针指示前一个所释放的对象。
9.一种方法,用于通过面向对象的程序进行动态内存管理,该方法包括以下步骤:
形成用于对象分配的空闲链接列表;
参照空闲链接列表,将超过预定阈值的大对象分配给节点,其中通过合并多个节点而生成该节点,以与所述大对象的大小相同;
按顺序将小于或与阈值相同的小对象分配给具有大于该阈值的存储容量的内存块;以及
当空闲重用列表中有对应于所述对象的可重用对象时,将所述对象分配给被指定给该可重用对象的内存块的特定域。
10.根据权利要求9的方法,其中,所述内存块与数据结构相关联,该数据结构包括:用于所分配的对象的信息、指示所分配的对象被指定的地址的地址指针、以及指示从所述内存块释放的对象的释放对象指针;其中,参照阈值,由包括空指针的元素的排列形成空闲重用列表;以及,其中,对应于所释放的对象的所述空指针中的一个指示所释放的对象。
11.根据权利要求10的方法,其中,当所述空指针指示当前的一个所释放的对象时,被指定给当前释放的对象的释放对象指针指示前一个所释放的对象。
12.根据权利要求9的方法,还包括,通过分析在面向对象的程序中频繁创建和消失的对象,确立阈值的大小的步骤。
13.一种设备,可通过面向对象的程序进行操作,包括:
被配置用来形成用于对象分配的空闲链接列表的装置;
被配置用来通过参照空闲链接列表,将超过预定阈值的大对象分配给节点,其中,通过合并多个节点以与大对象的大小相等而生成该节点的装置;
被配置用来按顺序将小于或与阈值相同的小对象分配给具有大于该阈值的存储容量的内存块的装置;以及
被配置用来当在空闲重用列表中有对应于所述对象的可重用对象时,将所述对象分配给被指定给该可重用对象的内存块的特定域的装置。
14.根据权利要求13的方法,其中,参照阈值,由包括空指针的元素的排列形成所述空闲重用列表;以及,其中,对应于所释放的对象的空指针中的一个指示该所释放的对象。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/674,277 | 2003-09-30 | ||
US10/674,277 US7325118B2 (en) | 2003-09-30 | 2003-09-30 | Method and apparatus for executing dynamic memory management with object-oriented program |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1604051A true CN1604051A (zh) | 2005-04-06 |
CN100386745C 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) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847157A (zh) * | 2010-04-27 | 2010-09-29 | 北京神州泰岳软件股份有限公司 | 一种基于ussd的手机浏览器数据缓存及初始化方法 |
CN103186469A (zh) * | 2011-12-27 | 2013-07-03 | 上海博泰悦臻电子设备制造有限公司 | 内存分配方法及装置、内存的回收方法 |
CN105094937A (zh) * | 2014-05-19 | 2015-11-25 | Ls产电株式会社 | 用于可编程逻辑控制器的程序管理的装置 |
WO2016187974A1 (zh) * | 2015-05-25 | 2016-12-01 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN106293939A (zh) * | 2016-08-05 | 2017-01-04 | 北京航空航天大学 | 一种在内存垃圾收集器中动态重用对象的方法 |
CN106776375A (zh) * | 2016-12-27 | 2017-05-31 | 东方网力科技股份有限公司 | 一种磁盘内部的数据缓存方法及装置 |
CN107256531A (zh) * | 2010-03-19 | 2017-10-17 | 想象技术有限公司 | 存储器管理系统和方法 |
CN108196938A (zh) * | 2017-12-27 | 2018-06-22 | 努比亚技术有限公司 | 内存调用方法、移动终端及计算机可读存储介质 |
CN108600119A (zh) * | 2018-04-02 | 2018-09-28 | 北京理工大学 | 一种面向c-ran基带处理的数据缓冲区管理方法 |
CN109542798A (zh) * | 2018-10-30 | 2019-03-29 | 歌尔股份有限公司 | 一种动态分配物理地址的方法、装置及电子设备 |
Families Citing this family (21)
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 | 株式会社日立製作所 | メモリ管理方法およびその方法を用いるコンピュータ |
US7949903B2 (en) * | 2008-09-26 | 2011-05-24 | Microsoft Corporation | Memory management techniques selectively using mitigations to reduce errors |
US7937625B2 (en) * | 2008-09-26 | 2011-05-03 | Microsoft Corporation | Evaluating effectiveness of 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 |
CN101853210A (zh) * | 2010-05-25 | 2010-10-06 | 惠州华阳通用电子有限公司 | 一种内存管理方法及装置 |
KR101141884B1 (ko) * | 2010-08-05 | 2012-05-03 | 성균관대학교산학협력단 | 동적 순환 메모리 할당 방법 및 이러한 방법을 사용하는 메모리 장치 |
CN103392165B (zh) * | 2011-06-24 | 2016-04-06 | 株式会社日立制作所 | 存储系统 |
CN103809982A (zh) * | 2014-02-26 | 2014-05-21 | 能力天空科技(北京)有限公司 | 一种排列方法及系统 |
ES2747962T3 (es) | 2015-06-29 | 2020-03-12 | Aicas Gmbh | Gestión de memoria automática que usa una unidad de gestión de memoria |
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 | 충북대학교 산학협력단 | 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법 |
CN107861887B (zh) * | 2017-11-30 | 2021-07-20 | 科大智能电气技术有限公司 | 一种串行易失性存储器的控制方法 |
US11468312B2 (en) * | 2018-02-02 | 2022-10-11 | Samsung Electronics Co., Ltd. | Memory management for machine learning training on GPU |
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 |
Family Cites Families (17)
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 | 記憶領域管理方法 |
US7146479B2 (en) * | 2001-07-18 | 2006-12-05 | City U Research Limited | Method and apparatus of storage allocation/de-allocation in object-oriented programming environment |
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 |
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 |
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 |
US6438560B1 (en) * | 1999-09-16 | 2002-08-20 | International Business Machines Corporation | Reuse of immutable objects during object creation |
CN1174320C (zh) * | 1999-09-24 | 2004-11-03 | 国际商业机器公司 | Java卡小应用程序中数据目标的动态内存管理 |
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 |
CN1181434C (zh) | 2001-06-28 | 2004-12-22 | 华为技术有限公司 | 自适应动态内存管理方法 |
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 |
-
2003
- 2003-09-30 US US10/674,277 patent/US7325118B2/en not_active Expired - Lifetime
-
2004
- 2004-02-09 KR KR1020040008397A patent/KR101076808B1/ko active IP Right Grant
- 2004-09-17 JP JP2004272125A patent/JP4684607B2/ja not_active Expired - Fee Related
- 2004-09-24 GB GB0803876A patent/GB2446071B/en not_active Expired - Fee Related
- 2004-09-24 CN CNB2004100119017A patent/CN100386745C/zh not_active Expired - Fee Related
- 2004-09-24 GB GB0421341A patent/GB2406932B/en not_active Expired - Fee Related
-
2007
- 2007-10-31 US US11/980,447 patent/US7624247B2/en not_active Expired - Fee Related
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107256531A (zh) * | 2010-03-19 | 2017-10-17 | 想象技术有限公司 | 存储器管理系统和方法 |
CN107256531B (zh) * | 2010-03-19 | 2020-05-15 | 想象技术有限公司 | 存储器管理系统和方法 |
CN101847157B (zh) * | 2010-04-27 | 2012-09-05 | 北京神州泰岳软件股份有限公司 | 一种基于ussd的手机浏览器初始化方法 |
CN101847157A (zh) * | 2010-04-27 | 2010-09-29 | 北京神州泰岳软件股份有限公司 | 一种基于ussd的手机浏览器数据缓存及初始化方法 |
CN103186469A (zh) * | 2011-12-27 | 2013-07-03 | 上海博泰悦臻电子设备制造有限公司 | 内存分配方法及装置、内存的回收方法 |
CN105094937A (zh) * | 2014-05-19 | 2015-11-25 | Ls产电株式会社 | 用于可编程逻辑控制器的程序管理的装置 |
US10579036B2 (en) | 2014-05-19 | 2020-03-03 | Lsis Co., Ltd. | Apparatus for program management of programmable logic controller |
WO2016187974A1 (zh) * | 2015-05-25 | 2016-12-01 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN106294190A (zh) * | 2015-05-25 | 2017-01-04 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN106294190B (zh) * | 2015-05-25 | 2020-10-16 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN106293939B (zh) * | 2016-08-05 | 2019-10-18 | 北京航空航天大学 | 一种在内存垃圾收集器中动态重用对象的方法 |
CN106293939A (zh) * | 2016-08-05 | 2017-01-04 | 北京航空航天大学 | 一种在内存垃圾收集器中动态重用对象的方法 |
CN106776375A (zh) * | 2016-12-27 | 2017-05-31 | 东方网力科技股份有限公司 | 一种磁盘内部的数据缓存方法及装置 |
CN108196938A (zh) * | 2017-12-27 | 2018-06-22 | 努比亚技术有限公司 | 内存调用方法、移动终端及计算机可读存储介质 |
CN108196938B (zh) * | 2017-12-27 | 2021-10-29 | 努比亚技术有限公司 | 内存调用方法、移动终端及计算机可读存储介质 |
CN108600119A (zh) * | 2018-04-02 | 2018-09-28 | 北京理工大学 | 一种面向c-ran基带处理的数据缓冲区管理方法 |
CN109542798A (zh) * | 2018-10-30 | 2019-03-29 | 歌尔股份有限公司 | 一种动态分配物理地址的方法、装置及电子设备 |
CN109542798B (zh) * | 2018-10-30 | 2020-11-24 | 潍坊歌尔微电子有限公司 | 一种动态分配物理地址的方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
GB0803876D0 (en) | 2008-04-09 |
US7325118B2 (en) | 2008-01-29 |
US20050071597A1 (en) | 2005-03-31 |
KR101076808B1 (ko) | 2011-10-25 |
GB2406932A (en) | 2005-04-13 |
JP4684607B2 (ja) | 2011-05-18 |
KR20050031849A (ko) | 2005-04-06 |
US7624247B2 (en) | 2009-11-24 |
JP2005108216A (ja) | 2005-04-21 |
US20080065841A1 (en) | 2008-03-13 |
CN100386745C (zh) | 2008-05-07 |
GB2446071B (en) | 2008-12-17 |
GB0421341D0 (en) | 2004-10-27 |
GB2406932B (en) | 2008-06-25 |
GB2446071A (en) | 2008-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1604051A (zh) | 用于通过面向对象的程序执行动态内存管理的方法和设备 | |
CN1271524C (zh) | 一种静态内存管理方法 | |
CN1096642C (zh) | 高效利用空间的对象加锁的系统和方法 | |
CN1276361C (zh) | 一种嵌入式系统内存管理的方法 | |
CN1329844C (zh) | 自适应垃圾收集方法及设备 | |
CN1097913C (zh) | Atm流量调节 | |
US20020144073A1 (en) | Method for memory heap and buddy system management for service aware networks | |
JPH0883210A (ja) | 電子データ処理装置を備える装置 | |
EP0686915A3 (en) | Hierarchical resource management method | |
JPH0916463A (ja) | メモリ領域の動的割り付け管理システム | |
CN1874538A (zh) | 一种呼叫事件并发处理方法 | |
CN103186469A (zh) | 内存分配方法及装置、内存的回收方法 | |
CN108932271B (zh) | 一种文件管理方法及装置 | |
CN104850505A (zh) | 基于链式堆叠的内存管理方法与系统 | |
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 | |
US20060236065A1 (en) | Method and system for variable dynamic memory management | |
CN1295613C (zh) | 通用Windows程序运行日志信息记录方法 | |
CN1881895A (zh) | 一种网络管理系统中的设备操作方法 | |
CN1287290C (zh) | 嵌入式实时操作系统中非缓冲内存动态分配方法 | |
CN1878150A (zh) | 一种实现时分复用承载资源共享的方法及系统 | |
CN112346848A (zh) | 一种管理内存池的方法、装置及终端 | |
CN115658561A (zh) | 配电终端内存管理方法、装置、电子设备及存储介质 | |
CN1691637A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080507 Termination date: 20210924 |