CN106844050A - 一种内存分配方法及装置 - Google Patents

一种内存分配方法及装置 Download PDF

Info

Publication number
CN106844050A
CN106844050A CN201710039253.3A CN201710039253A CN106844050A CN 106844050 A CN106844050 A CN 106844050A CN 201710039253 A CN201710039253 A CN 201710039253A CN 106844050 A CN106844050 A CN 106844050A
Authority
CN
China
Prior art keywords
memory
group
headroom
application
distributed
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
Application number
CN201710039253.3A
Other languages
English (en)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710039253.3A priority Critical patent/CN106844050A/zh
Publication of CN106844050A publication Critical patent/CN106844050A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本发明公开了一种内存分配方法,该方法包括以下步骤:接收目标应用程序的内存申请,内存申请中携带目标应用程序的申请内存空间的信息;根据申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间,内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同;根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给目标应用程序。应用本发明实施例所提供的技术方案,节省了内存资源,避免一页一页分配导致的内存资源的浪费,可以满足不同空间大小内存对象的年分配需求。本发明还公开了一种内存分配装置,具有相应技术效果。

Description

一种内存分配方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种内存分配方法及装置。
背景技术
随着计算机技术的快速发展,Linux、Unix等操作系统的发展也越来越迅速。应用程序对内存的要求越来越高。
在现有技术中,内存块大小为一页,即4096字节,当接收到应用程序的内存申请时,无论应用程序申请的内存空间有多大,都会一页一页分配内存块给应用程序。如果应用程序需要的内存空间较小,不足一页,将会导致内存资源的浪费。
发明内容
本发明的目的是提供一种内存分配方法及装置,以节省内存资源。
为解决上述技术问题,本发明提供如下技术方案:
一种内存分配方法,包括:
接收目标应用程序的内存申请,所述内存申请中携带所述目标应用程序的申请内存空间的信息;
根据所述申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间,所述内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同;
根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给所述目标应用程序。
在本发明的一种具体实施方式中,所述根据所述申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间,包括:
根据所述申请内存空间,确定多种分配方案;
将每个内存组需分配的内存空间的总和最小的分配方案确定为最佳分配方案。
在本发明的一种具体实施方式中,所述根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给所述目标应用程序,包括:
针对每个内存组,如果该内存组需分配的内存空间不为0,则确定该内存组的全部空闲链表中是否存在全部空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的全部空闲内存块中分配相应空间大小的内存对象给所述目标应用程序。
在本发明的一种具体实施方式中,在确定该内存组的全部空闲链表中不存在全部空间内存块时,还包括:
确定该内存组的部分空闲链表中是否存在部分空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的部分空闲内存块中分配相应空间大小的内存对象给所述目标应用程序。
在本发明的一种具体实施方式中,在确定该内存组的部分空闲链表中不存在部分空闲内存块时,还包括:
在伙伴系统中申请设定数量的内存块,并将申请到的内存块放入该内存组的所述全部空闲链表中;
根据该内存组需分配的内存空间,在所述全部空闲链表的内存块中分配相应空间大小的内存对象给所述目标应用程序。
在本发明的一种具体实施方式中,还包括:
针对该内存组中满负荷链表中的每个内存块,按照设定周期查询该内存块是否存在可释放的对象空间;
如果是,则释放该内存块相应的对象空间;
如果释放该内存块的全部对象空间,则将该内存块放入该内存组的所述全部空闲链表中;
如果释放该内存块的部分对象空间,则将该内存块放入该内存组的所述部分空闲链表中。
一种内存分配装置,包括:
内存申请接收模块,用于接收目标应用程序的内存申请,所述内存申请中携带所述目标应用程序的申请内存空间的信息;
内存空间确定模块,用于根据所述申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间,所述内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同;
内存对象分配模块,用于根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给所述目标应用程序。
在本发明的一种具体实施方式中,所述内存空间确定模块,具体用于:
根据所述申请内存空间,确定多种分配方案;
将每个内存组需分配的内存空间的总和最小的分配方案确定为最佳分配方案。
在本发明的一种具体实施方式中,所述内存对象分配模块,具体用于:
针对每个内存组,如果该内存组需分配的内存空间不为0,则确定该内存组的全部空闲链表中是否存在全部空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的全部空闲内存块中分配相应空间大小的内存对象给所述目标应用程序。
在本发明的一种具体实施方式中,所述内存对象分配模块,还用于:
在确定该内存组的全部空闲链表中不存在全部空间内存块时,确定该内存组的部分空闲链表中是否存在部分空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的部分空闲内存块中分配相应空间大小的内存对象给所述目标应用程序。
应用本发明实施例所提供的技术方案,在接收到目标应用程序的内存申请时,可以从内存申请中获得目标应用程序的申请内存空间的信息,根据申请内存空间,可以在预先获得的内存组集合中确定每个内存组需分配的内存空间。内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同。根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给目标应用程序。这样,分配给目标应用程序的内存对象的空间总和与目标应用程序的申请内存空间的大小的差值较小,节省了内存资源,避免一页一页分配导致的内存资源的浪费,可以满足不同空间大小内存对象的年分配需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种内存分配方法的实施流程图;
图2为本发明实施例中一种内存分配装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,为本发明实施例所提供的一种内存分配方法的实施流程图,该方法包括以下步骤:
S110:接收目标应用程序的内存申请。
内存申请中携带目标应用程序的申请内存空间的信息。
在实际应用中,应用程序在运行过程中,需要进行内存申请,内存申请中携带应用程序的申请内存空间的信息。接收到目标应用个程序的内存申请时,可以从内存申请携带的信息中获知目标应用程序要申请的内存空间的大小。
S120:根据申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间。
内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同。
在本发明实施例中,可以通过伙伴系统buddy system申请得到一块缓存池,并将其分割为4kB大小的内存块,内存块可以是slub块、slob块或者slab块。
将所有的内存块分为多个内存组,不同的内存组代表内存块可划分不同空间大小的内存对象,从而满足不同大小对象的分配需求。
即内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同。
比如,内存组集合中共包含10个内存组,依次代表从23(8字节)~212(4096字节)不同空间大小的内存对象的可划分方式。
在接收到目标应用程序的内存申请时,可以根据申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间。
在实际应用中,可以按照向上取整的方式确定每个内存组需分配的内存空间。
比如,申请内存空间大小为18字节,按照向上取整的方式可以确定在25(32字节)对应的内存组中分配32字节大小的内存空间,在其他内存组中不分配内存空间。
或者,可以按照其他方式确定每个内存组需分配的内存空间。
仍以上例为例,申请内存空间大小为18字节,可以确定在24(16字节)对应的内存组中分配16字节大小的内存空间,在23(8字节)对应的内存组中分配2字节大小的内存空间。
具体的分配方式可以根据实际情况进行确定和调整,本发明实施例对此不做限制。但无论使用哪种分配方式,相较于现有技术中一页一页分配更节省内存资源。
在本发明的一种具体实施方式中,根据申请内存空间,可以确定多种分配方案,将每个内存组需分配的内存空间的总和最小的分配方案确定为最佳分配方案。这样更节省内存资源。
S130:根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给目标应用程序。
在步骤S120,确定了每个内存组需分配的内存空间,根据每个内存组需分配的内存空间,可以在每个内存组中分配相应空间大小的内存对象给目标应用程序。不同内存组中的内存块可划分的内存对象的空间大小不同。针对某个内存组而言,如果确定该内存组需分配的内存空间小于该内存组中内存块可划分的内存对象的空间,则需在该内存组中分配其可划分的内存对象。即分配给目标应用程序的内存对象的空间总和可以大于或等于目标应用程序的申请内存空间。
比如,确定在24(16字节)对应的内存组中分配16字节大小的内存空间,在23(8字节)对应的内存组中分配2字节大小的内存空间,可以在24(16字节)对应的内存组中分配16字节大小的内存对象给目标应用程序,在23(8字节)对应的内存组中分配8字节大小的内存对象给目标应用程序。
在本发明的一种具体实施方式中,步骤S130可以包括以下步骤:
步骤一:针对每个内存组,如果该内存组需分配的内存空间不为0,则确定该内存组的全部空闲链表中是否存在全部空闲内存块,如果是,则执行步骤二;
步骤二:根据该内存组需分配的内存空间,在该内存组包含的全部空闲内存块中分配相应空间大小的内存对象给目标应用程序。
为便于描述,将上述两个步骤结合起来进行说明。
在本发明实施例中,针对每个内存组,可以根据该内存组中内存块的对象空间使用情况,将每个内存块放入到不同的链表中。比如,没有分配过任何内存对象的内存块为全部空闲内存块,可以将全部空闲内存块放入到全部空闲链表中;分配过部分内存对象的内存块为部分空闲内存块,可以将部分空闲内存块放入到部分空闲链表中,部分空闲链表可以有多个,代表内存块中空闲的内存对象的多少;已分配满的内存块可以放入满负荷链表中。
根据内存块中内存对象的使用与释放,各个链表中的内存块动态调整。
针对某个内存组而言,如果该内存组需分配的内存空间不为0,则可以确定该内存组的全部空闲链表中是否存在全部空闲内存块,如果存在,则可以根据该内存组需分配的内存空间,在该内存组包含的全部空闲内存块中分配相应大小的内存对象给目标应用程序。
如果确定该内存组的全部空闲链表中不存在全部空闲内存块时,可以进一步确定该内存组的部分空闲链表中是否存在部分空闲内存块,如果存在,则可以根据该内存组需分配的内存空间,在该内存组包含的部分空闲内存块中分配相应空间大小的内存对象给目标应用程序。
如果确定该内存组的部分空闲链表中不存在部分空闲内存块时,可以在伙伴系统中申请设定数量的内存块,并将申请到的内存块放入该内存组的全部空闲链表中,根据该内存组需分配的内存空间,在全部空闲链表的内存块中分配相应空间大小的内存对象给目标应用程序。
如果内存组需分配的内存空间为0,则可以不做任何处理。
在本发明的一种具体实施方式中,该方法还可以包括以下步骤:
步骤一:针对该内存组中满负荷链表中的每个内存块,按照设定周期查询该内存块是否存在可释放的对象空间,如果是,则执行步骤二;
步骤二:释放该内存块相应的对象空间;
步骤三:如果释放该内存块的全部对象空间,则将该内存块放入该内存组的全部空闲链表中;
步骤四:如果释放该内存块的部分对象空间,则将该内存块放入该内存组的部分空闲链表中。
为便于描述,将上述四个步骤结合起来进行说明。
为节省内存空间,减少和伙伴系统的交互,内存组的多个链表中的内存块可以动态调整,循环使用。
对于某个内存组而言,针对该内存组中满负荷链表中的每个内存块,可以按照设定周期查询该内存块是否存在可释放的对象空间,如果存在,则可以释放该内存块相应的对象空间,如果不存在,则可以不做任何处理。
如果释放该内存块的全部对象空间,则该内存块将成为全部空闲内存块,可以将该内存块放入该内存组的全部空闲链表中。
如果释放该内存块的部分对象空间,则该内存块将成为部分空闲内存块,可以将该内存块放入该内存组的部分空闲链表中。
这样,当再次接收到应用程序的内存申请时,可以从全部空闲链表或者部分空闲链表的内存块中分配相应空间大小的内存对象。
应用本发明实施例所提供的方法,在接收到目标应用程序的内存申请时,可以从内存申请中获得目标应用程序的申请内存空间的信息,根据申请内存空间,可以在预先获得的内存组集合中确定每个内存组需分配的内存空间。内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同。根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给目标应用程序。这样,分配给目标应用程序的内存对象的空间总和与目标应用程序的申请内存空间的大小的差值较小,节省了内存资源,避免一页一页分配导致的内存资源的浪费,可以满足不同空间大小内存对象的年分配需求。
相应于上面的方法实施例,本发明实施例还提供了一种内存分配装置,下文描述的一种内存分配装置与上文描述的一种内存分配方法可相互对应参照。
参见图2所示,该装置包括以下模块:
内存申请接收模块210,用于接收目标应用程序的内存申请,内存申请中携带目标应用程序的申请内存空间的信息;
内存空间确定模块220,用于根据申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间,内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同;
内存对象分配模块230,用于根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给目标应用程序。
应用本发明实施例所提供的装置,在接收到目标应用程序的内存申请时,可以从内存申请中获得目标应用程序的申请内存空间的信息,根据申请内存空间,可以在预先获得的内存组集合中确定每个内存组需分配的内存空间。内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同。根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给目标应用程序。这样,分配给目标应用程序的内存对象的空间总和与目标应用程序的申请内存空间的大小的差值较小,节省了内存资源,避免一页一页分配导致的内存资源的浪费,可以满足不同空间大小内存对象的年分配需求。
在本发明的一种具体实施方式中,内存空间确定模块220,具体用于:
根据申请内存空间,确定多种分配方案;
将每个内存组需分配的内存空间的总和最小的分配方案确定为最佳分配方案。
在本发明的一种具体实施方式中,内存对象分配模块230,具体用于:
针对每个内存组,如果该内存组需分配的内存空间不为0,则确定该内存组的全部空闲链表中是否存在全部空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的全部空闲内存块中分配相应空间大小的内存对象给目标应用程序。
在本发明的一种具体实施方式中,内存对象分配模块230,还用于:
在确定该内存组的全部空闲链表中不存在全部空间内存块时,确定该内存组的部分空闲链表中是否存在部分空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的部分空闲内存块中分配相应空间大小的内存对象给目标应用程序。
在本发明的一种具体实施方式中,内存对象分配模块230,还用于:
在确定该内存组的部分空闲链表中不存在部分空闲内存块时,在伙伴系统中申请设定数量的内存块,并将申请到的内存块放入该内存组的全部空闲链表中;
根据该内存组需分配的内存空间,在全部空闲链表的内存块中分配相应空间大小的内存对象给目标应用程序。
在本发明的一种具体实施方式中,还包括内存块调整模块,用于:
针对该内存组中满负荷链表中的每个内存块,按照设定周期查询该内存块是否存在可释放的对象空间;
如果是,则释放该内存块相应的对象空间;
如果释放该内存块的全部对象空间,则将该内存块放入该内存组的全部空闲链表中;
如果释放该内存块的部分对象空间,则将该内存块放入该内存组的部分空闲链表中。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种内存分配方法,其特征在于,包括:
接收目标应用程序的内存申请,所述内存申请中携带所述目标应用程序的申请内存空间的信息;
根据所述申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间,所述内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同;
根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给所述目标应用程序。
2.根据权利要求1所述的内存分配方法,其特征在于,所述根据所述申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间,包括:
根据所述申请内存空间,确定多种分配方案;
将每个内存组需分配的内存空间的总和最小的分配方案确定为最佳分配方案。
3.根据权利要求1或2所述的内存分配方法,其特征在于,所述根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给所述目标应用程序,包括:
针对每个内存组,如果该内存组需分配的内存空间不为0,则确定该内存组的全部空闲链表中是否存在全部空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的全部空闲内存块中分配相应空间大小的内存对象给所述目标应用程序。
4.根据权利要求3所述的内存分配方法,其特征在于,在确定该内存组的全部空闲链表中不存在全部空间内存块时,还包括:
确定该内存组的部分空闲链表中是否存在部分空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的部分空闲内存块中分配相应空间大小的内存对象给所述目标应用程序。
5.根据权利要求4所述的内存分配方法,其特征在于,在确定该内存组的部分空闲链表中不存在部分空闲内存块时,还包括:
在伙伴系统中申请设定数量的内存块,并将申请到的内存块放入该内存组的所述全部空闲链表中;
根据该内存组需分配的内存空间,在所述全部空闲链表的内存块中分配相应空间大小的内存对象给所述目标应用程序。
6.根据权利要求4所述的内存分配方法,其特征在于,还包括:
针对该内存组中满负荷链表中的每个内存块,按照设定周期查询该内存块是否存在可释放的对象空间;
如果是,则释放该内存块相应的对象空间;
如果释放该内存块的全部对象空间,则将该内存块放入该内存组的所述全部空闲链表中;
如果释放该内存块的部分对象空间,则将该内存块放入该内存组的所述部分空闲链表中。
7.一种内存分配装置,其特征在于,包括:
内存申请接收模块,用于接收目标应用程序的内存申请,所述内存申请中携带所述目标应用程序的申请内存空间的信息;
内存空间确定模块,用于根据所述申请内存空间,在预先获得的内存组集合中确定每个内存组需分配的内存空间,所述内存组集合中包含多个内存组,每个内存组中均包含多个内存块,不同内存组中的内存块可划分的内存对象的空间大小不同;
内存对象分配模块,用于根据每个内存组需分配的内存空间,在每个内存组中分配相应空间大小的内存对象给所述目标应用程序。
8.根据权利要求7所述的内存分配装置,其特征在于,所述内存空间确定模块,具体用于:
根据所述申请内存空间,确定多种分配方案;
将每个内存组需分配的内存空间的总和最小的分配方案确定为最佳分配方案。
9.根据权利要求7或8所述的内存分配装置,其特征在于,所述内存对象分配模块,具体用于:
针对每个内存组,如果该内存组需分配的内存空间不为0,则确定该内存组的全部空闲链表中是否存在全部空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的全部空闲内存块中分配相应空间大小的内存对象给所述目标应用程序。
10.根据权利要求9所述的内存分配装置,其特征在于,所述内存对象分配模块,还用于:
在确定该内存组的全部空闲链表中不存在全部空间内存块时,确定该内存组的部分空闲链表中是否存在部分空闲内存块;
如果是,则根据该内存组需分配的内存空间,在该内存组包含的部分空闲内存块中分配相应空间大小的内存对象给所述目标应用程序。
CN201710039253.3A 2017-01-19 2017-01-19 一种内存分配方法及装置 Pending CN106844050A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710039253.3A CN106844050A (zh) 2017-01-19 2017-01-19 一种内存分配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710039253.3A CN106844050A (zh) 2017-01-19 2017-01-19 一种内存分配方法及装置

Publications (1)

Publication Number Publication Date
CN106844050A true CN106844050A (zh) 2017-06-13

Family

ID=59123353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710039253.3A Pending CN106844050A (zh) 2017-01-19 2017-01-19 一种内存分配方法及装置

Country Status (1)

Country Link
CN (1) CN106844050A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729145A (zh) * 2017-10-11 2018-02-23 广东欧珀移动通信有限公司 应用程序运行控制方法及装置
CN108647150A (zh) * 2018-04-14 2018-10-12 温州职业技术学院 一种内存管理方法及系统
CN108984310A (zh) * 2018-08-21 2018-12-11 郑州云海信息技术有限公司 一种对象数据的构建方法和装置
CN109117273A (zh) * 2018-08-17 2019-01-01 腾讯科技(深圳)有限公司 数据存储方法、装置及设备
CN109388580A (zh) * 2018-09-28 2019-02-26 深圳市景阳科技股份有限公司 一种内存管理方法、内存管理装置及终端设备
CN110209594A (zh) * 2018-02-28 2019-09-06 贵州白山云科技股份有限公司 一种适用于slab结构的内存管理方法及装置
CN110515727A (zh) * 2019-08-16 2019-11-29 苏州浪潮智能科技有限公司 一种fpga的内存空间操作方法及相关装置
WO2021243700A1 (en) * 2020-06-05 2021-12-09 Micron Technology, Inc. Trims for memory performance targets of applications
WO2024016751A1 (zh) * 2022-07-19 2024-01-25 华为技术有限公司 内存分配方法、装置及计算机

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221536B (zh) * 2008-01-25 2010-06-16 中兴通讯股份有限公司 嵌入式系统的内存管理方法及装置
CN102156675A (zh) * 2010-02-12 2011-08-17 中兴通讯股份有限公司 一种内存分配方法及装置
CN103914265A (zh) * 2014-04-09 2014-07-09 江苏物联网研究发展中心 集群细粒度内存管理方法
CN105389210A (zh) * 2015-10-16 2016-03-09 浪潮(北京)电子信息产业有限公司 一种存储空间管理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221536B (zh) * 2008-01-25 2010-06-16 中兴通讯股份有限公司 嵌入式系统的内存管理方法及装置
CN102156675A (zh) * 2010-02-12 2011-08-17 中兴通讯股份有限公司 一种内存分配方法及装置
CN103914265A (zh) * 2014-04-09 2014-07-09 江苏物联网研究发展中心 集群细粒度内存管理方法
CN105389210A (zh) * 2015-10-16 2016-03-09 浪潮(北京)电子信息产业有限公司 一种存储空间管理方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729145A (zh) * 2017-10-11 2018-02-23 广东欧珀移动通信有限公司 应用程序运行控制方法及装置
CN110209594A (zh) * 2018-02-28 2019-09-06 贵州白山云科技股份有限公司 一种适用于slab结构的内存管理方法及装置
CN110209594B (zh) * 2018-02-28 2020-01-24 贵州白山云科技股份有限公司 一种适用于slab结构的内存管理方法及装置
CN108647150A (zh) * 2018-04-14 2018-10-12 温州职业技术学院 一种内存管理方法及系统
CN109117273A (zh) * 2018-08-17 2019-01-01 腾讯科技(深圳)有限公司 数据存储方法、装置及设备
CN109117273B (zh) * 2018-08-17 2021-09-07 腾讯科技(深圳)有限公司 数据存储方法、装置及设备
CN108984310A (zh) * 2018-08-21 2018-12-11 郑州云海信息技术有限公司 一种对象数据的构建方法和装置
CN109388580A (zh) * 2018-09-28 2019-02-26 深圳市景阳科技股份有限公司 一种内存管理方法、内存管理装置及终端设备
CN110515727A (zh) * 2019-08-16 2019-11-29 苏州浪潮智能科技有限公司 一种fpga的内存空间操作方法及相关装置
WO2021243700A1 (en) * 2020-06-05 2021-12-09 Micron Technology, Inc. Trims for memory performance targets of applications
US11714547B2 (en) 2020-06-05 2023-08-01 Micron Technology, Inc. Trims for memory performance targets of applications
WO2024016751A1 (zh) * 2022-07-19 2024-01-25 华为技术有限公司 内存分配方法、装置及计算机

Similar Documents

Publication Publication Date Title
CN106844050A (zh) 一种内存分配方法及装置
CN104317742B (zh) 一种优化空间管理的自动精简配置方法
CN101847127B (zh) 一种内存管理方法及装置
CN104915151A (zh) 多虚拟机系统中一种主动共享的内存超量分配方法
US20020144073A1 (en) Method for memory heap and buddy system management for service aware networks
WO2005001682A3 (en) Multi-volume file support
CN101799786A (zh) 管理动态存储器的嵌入式系统和动态存储器管理方法
CN102306126A (zh) 内存管理方法、装置和系统
CN110674052B (zh) 内存管理方法、服务器及可读存储介质
CN103455433A (zh) 内存管理方法及系统
CN108829523A (zh) 内存资源分配方法、装置、电子设备及可读存储介质
JP2013522780A (ja) ストレージリソースの階層化管理方法及びシステム
CN102685219B (zh) San存储系统中通过动态扩容提高存储资源利用率的方法
CN102968380A (zh) 内存文件系统中内存分区的管理方法和装置
CN107426321A (zh) 一种分布式存储系统配额分配方法及装置
CN102053916B (zh) 一种分配内核大片连续内存的方法
CN107515788A (zh) 一种内存分配的方法及装置
CN109062666A (zh) 一种虚拟机集群管理方法及相关装置
CN103699493B (zh) 智能卡dtr内存空间的控制系统及方法
CN106294198A (zh) 一种Linux操作系统的内存分配方法及释放方法
CN108255608A (zh) 一种内存池的管理方法
CN107832011A (zh) 一种数据存储方法、装置、设备及计算机可读存储介质
CN102520879B (zh) 基于优先级的文件信息存储方法、装置及系统
CN106469121B (zh) 一种内存分配的方法及装置
CN104778125A (zh) 一种内存管理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170613