CN107203477A - 内存分配方法、装置、电子设备及可读存储介质 - Google Patents

内存分配方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN107203477A
CN107203477A CN201710457637.7A CN201710457637A CN107203477A CN 107203477 A CN107203477 A CN 107203477A CN 201710457637 A CN201710457637 A CN 201710457637A CN 107203477 A CN107203477 A CN 107203477A
Authority
CN
China
Prior art keywords
memory
field
capacity
memory field
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.)
Pending
Application number
CN201710457637.7A
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.)
Oneplus Technology Shenzhen Co Ltd
Original Assignee
Oneplus Technology Shenzhen 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 Oneplus Technology Shenzhen Co Ltd filed Critical Oneplus Technology Shenzhen Co Ltd
Priority to CN201710457637.7A priority Critical patent/CN107203477A/zh
Publication of CN107203477A publication Critical patent/CN107203477A/zh
Priority to US16/623,051 priority patent/US11106574B2/en
Priority to EP18818963.3A priority patent/EP3633515B1/en
Priority to PCT/CN2018/090620 priority patent/WO2018228327A1/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明提供一种内存分配方法、装置、电子设备及可读存储介质。电子设备的内存包括第一内存区及第二内存区。所述方法包括:接收内存分配请求,内存分配请求包括所需分配的内存容量;将所需分配的内存容量与预设内存块的容量范围进行比较,得到比较结果;根据比较结果从第一内存区或第二内存区分配相应容量的内存块。所述方法通过在不同的内存区分配内存块,将不同大小的内存块分开管理,使得内存不会因为不同大小的内存块的混合使用而造成碎片化,由此,降低碎片化的发生几率。

Description

内存分配方法、装置、电子设备及可读存储介质
技术领域
本发明涉及计算机存储技术领域,具体而言,涉及一种内存分配方法、装置、电子设备及可读存储介质。
背景技术
目前,在接收到内存分配请求时,电子设备直接从整个内存的可用内存块中去选用适合的区域,不区分所需内存容量的大小。由此,小容量的内存块不断分布在整个内存中。在系统运行一段时间后,系统内持续进行内存块的分配和释放,系统空闲物理内存被使用的内存块分割开,大块的连续物理内存块为0,空闲的内存块只能满足小容量的分配。也就是说,系统可能还有很多空闲的内存块,但是却无法满足大容量的内存分配需求,此时就是发生了内存碎片化。
在发生内存碎片化后,需要花费一定的时间来执行内存重整,以得到整块连续的存储空间。上述做法虽然得到了大容量的内存块,但在一定程度上会影响到用户的正常操作或造成消费额外电力等。因此,如何降低内存碎片化的发生几率是本领域是技术人员急需解决的问题。
发明内容
为了克服现有技术中的上述不足,本发明所要解决的技术问题是提供一种内存分配方法、装置、电子设备及可读存储介质,其能够通过在不同的内存区分配内存块,将不同大小的内存块分开管理,使得内存不会因为不同大小的内存块的混合使用而造成碎片化,由此,降低碎片化的发生几率。
本发明较佳实施例提供一种内存分配方法,应用于电子设备,所述电子设备的内存包括第一内存区及第二内存区,所述方法包括:
接收内存分配请求,所述内存分配请求包括所需分配的内存容量;
将所述所需分配的内存容量与预设内存块的容量范围进行比较,得到比较结果;
根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块。
本发明较佳实施例还提供一种内存分配装置,应用于电子设备,所述电子设备的内存包括第一内存区及第二内存区,所述装置包括:
接收模块,用于接收内存分配请求,所述内存分配请求包括所需分配的内存容量;
比较模块,用于将所述所需分配的内存容量与预设内存块的容量范围进行比较,得到比较结果;
分配模块,用于根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块。
本发明较佳实施例还提供一种电子设备,所述电子设备的内存包括第一内存区及第二内存区,所述电子设备包括:
存储器;
处理器;及
内存分配装置,所述内存分配装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模块,所述装置包括:
接收模块,用于接收内存分配请求,所述内存分配请求包括所需分配的内存容量;
比较模块,用于将所述所需分配的内存容量与预设内存块的容量范围进行比较,得到比较结果;
分配模块,用于根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块。
本发明较佳实施例还提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在电子设备执行上述任意一项所述的内存分配方法。
相对于现有技术而言,本发明具有以下有益效果:
本发明提供一种内存分配方法、装置、电子设备及可读存储介质。所述方法应用于所述电子设备。所述电子设备的内存包括第一内存区及第二内存区。在接收到内存分配请求后,将内存分配请求中的所需分配的内存容量与预设内存块的容量范围进行比较,得到一比较结果。进而根据比较结果确定从第一内存区或第二内存区分配与所需分配的内存容量匹配的内存块。由此,不仅对内存分配需求进行了响应,同时将不同大小的内存块分开管理,降低了由于不同大小的内存块混合使用而发生碎片化的几率。
为使发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明较佳实施例提供的电子设备的方框示意图。
图2是本发明较佳实施例提供的内存分配方法的流程示意图之一。
图3是本发明较佳实施例提供的内存分配方法的流程示意图之二。
图4是本发明较佳实施例提供的内存分配方法的流程示意图之三。
图5是图4中步骤S150包括的子步骤的流程示意图。
图6是本发明较佳实施例提供的内存分配装置的方框示意图之一。
图7是本发明较佳实施例提供的内存分配装置的方框示意图之二。
图标:100-电子设备;110-存储器;120-存储控制器;130-处理器;200-内存分配装置;210-配置模块;220-接收模块;230-比较模块;240-分配模块;250-容量调整模块;251-检测子模块;252-调整子模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1是本发明较佳实施例提供的电子设备100的方框示意图。本发明实施例中所述电子设备100可以是,但不限于,智能手机、平板电脑等。所述电子设备100包括:存储器110、存储控制器120、处理器130以及内存分配装置200。
所述存储器110、存储控制器120及处理器130各元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有内存分配装置200,所述内存分配装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器130通过运行存储在存储器110内的软件程序以及模块,如本发明实施例中的内存分配装置200,从而执行各种功能应用以及数据处理,即实现本发明实施例中的内存分配方法。
其中,所述存储器110可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述处理器130以及其他可能的组件对存储器110的访问可在所述存储控制器120的控制下进行。
所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解,图1所示的结构仅为示意,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,图2是本发明较佳实施例提供的内存分配方法的流程图之一。所述方法应用于所述电子设备100,所述电子设备100的内存包括第一内存区及第二内存区。下面对内存分配方法的具体流程进行详细阐述。
步骤S120,接收内存分配请求。
在本实施例中,所述电子设备100上运行有很多程序,在程序运行时(比如,通过浏览器浏览网页时),经常会向系统发送内存分配请求,获得相应容量的内存以满足需要。其中,所述内存分配请求包括所需分配的内存容量。
步骤S130,将所述所需分配的内存容量与预设内存块的容量范围进行比较,得到比较结果。
在本实施例中,所述电子设备100的系统在接收到内存分配需求后,通过判定所需分配的内存容量是否在预设内存块的容量范围内,从而分配相应容量的内存块,同时可以区分不同大小的内存块及将不同大小的内存块分开管理。其中,预设内存块的容量范围可以根据实际情况(比如,系统不同)进行设置。
在本实施例的实施方式中,最小的预设内存块的容量可以是4KB(4KB*2^0),接着为8KB(4KB*2^1)、16KB(4KB*2^2)、…、1MB(4KB*2^8),2MB(4KB*2^9),4MB(4KB*2^10)。将对应2的次方的数字称为order,那么,最小的4KB即为order 0,最大的4MB即为order 10。在本实施例的一种实施方式中,将所述预设内存块的容量范围设置为order 0~order 10(4KB~4MB)。由于系统的不同,所述预设内存块的容量范围也可以设置成其他范围,比如,order3~order 10(32KB~4MB)。
步骤S140,根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块。
在本实施例中,通过根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块,实现了对不同大小的内存块分开管理的目的,由此可降低由于不同大小的内存块混合使用而发生内存碎片化的几率。其中,内存碎片化(Memory fragmentation)是指在用户需要一块N大小且连续的内存块时,虽然可使用内存总量大于N,但是每一个内存块的容量大小都小于用户需求的N,导致用户需求无法被满足。
在本实施例中,若所述所需分配的内存容量在所述预设内存块的容量范围内,且所述第一内存区的可用内存容量大于所述所需分配的内存容量,从第一内存区分配相应容量的预设内存块。所需分配的内存容量在预设内存块的容量范围内,表征对应所述分配请求的内存块可能为小容量的内存块。在第一内存区中的可用内存能够满足所述内存分配需求时,从第一内存区分配该小容量的预设内存块,实现了对不同大小的内存块分开管理的目的。
在本实施例中,若所述所需分配的内存容量在所述预设内存块的容量范围内,且所述第一内存区的可用内存容量小于所述所需分配的内存容量(比如,第一内存区的可用内存容量为0),从第二内存区分配相应容量的预设内存块。虽然所需分配的内存容量在预设内存块的容量范围内,表征对应所述分配请求的内存块可能为小容量的内存块,但是由于第一内存区中的可用内存不能够满足所述内存分配需求时,从第二内存区分配该小容量的预设内存块以满足所述内存分配需求。
在本实施例中,若所述所需分配的内存容量不在所述预设内存块的容量范围内,从第一内存区和/或第二内存区分配相应容量的内存块。所需分配的内存容量不在预设内存块的容量范围内,表征对应所述分配请求的内存块可能为大容量的内存块。从第一内存区或第二内存区分配该大容量的内存块,实现了对不同大小的内存块分开管理的目的。
在上述情形下,若所述第二内存区的可用内存容量大于所述所需分配的内存容量,从所述第二内存区分配相应容量的内存块。在所需分配的内存容量不在预设内存块的容量范围内,且经检测发现第二内存区中的可用内存容量大于所需分配的内存容量时,从第二内存区分配相应容量的内存块,可以使第二内存区管理大容量的内存块。其中,上述第二内存区中的可用内存容量是指第二内存区中连续、可被分配的内存空间。
若所述第二内存区的可用内存容量小于所述所需分配的内存容量,则进行内存重整以从所述第一内存区和/或所述第二内存区获得能够满足所述所需分配的内存容量的内存块。其中,内存重整(Memory compaction)是让可使用的内存相邻,从而合成为一整块连续的内存空间。
在操作系统系统中,虚拟地址跟实际内存是需要映射转换的,一般会有两种映射。一种是可移动的映射,虚拟地址跟实际内存地址能够动态调整映射(比如:一般情况下,用户使用的内存使用的是相同的虚拟地址,但是可以动态映射到不同的实际内存地址)。另一种是不可移动的映射,虚拟地址跟实际内存地址之间的映射不能改动(比如:驱动程序或是操作系统本身使用到的虚拟地址跟物理内存地址)。而内存重整就是将可移动的映射区域整体做一次动态调整,以提供足够大的连续物理内存空间以满足需求。
请参照图3,图3是本发明较佳实施例提供的内存分配方法的流程示意图之二。所述方法还可以包括步骤S110。
步骤S110,对所述电子设备100的内存进行配置,将所述电子设备100的内存配置为第一内存区和第二内存区。
在本实施例中,在所述电子设备100初始化之后,从所述电子设备100的内存中先预留一部分内存作为第一内存区,内存的其余内存空间则作为第二内存区。其中,第一内存区的大小可以根据实际情况进行设置(比如,第一内存区设置为100MB或0等)。
请参照图4,图4是本发明较佳实施例提供的内存分配方法的流程示意图之三。所述方法还可以包括步骤S150。
步骤S150,对所述第一内存区的总容量进行调整。
在本实施例中,通过内存配置得到第一内存区后,可以根据实际情况(比如,第一内存区中内存的使用情况)将第一内存区的总容量进行调整,从而使得所述第一内存区的内存不会被用尽,还可以在第一内存区的可用容量很多时,缩小第一内存区的总容量,以避免浪费。
请参照图5,图5是图4中步骤S150包括的子步骤的流程示意图。所述步骤S150可以包括子步骤S151及子步骤S152。
子步骤S151,对所述第一内存区中的可用容量进行检测。
在本实施例的实施方式中,通过对所述第一内存区进行检测,可获得所述第一内存区的使用情况,比如,已用容量、可用容量等。
子步骤S152,根据所述第一内存区中的可用容量与所述第一内存区的总容量的占比,在预设可调范围内调整所述第一内存区的总容量。
在本实施例的实施方式中,将第一内存区中的可用容量与第一内存区的总容量进行比较,得到第一内存区中的可用容量在第一内存区的总容量的占比。根据得到的所述占比在预设可调范围内对第一内存区的总容量进行调整。其中,预设可调范围可以根据实际情况进行设定(比如,预设可调范围是0至电子设备100的内存的总容量、0~1GB等。)
当所述占比小于第一预设值时,增大所述第一内存区的总容量。当所述占比大于第二预设值时,减小所述第一内存区的总容量。其中,所述第二预设值大于所述第一预设值。调整后的所述第一内存区的总容量依然在所述预设可调范围内。
其中,增大或减小的方式可以是电子设备100的系统自动根据占比依次增大或减小一定的内存空间(比如,10MB);也可以是接收输入的操作,根据操作对第一内存区的总容量增大或减小一定的内存空间。
接下来以举例子的形式介绍如何调整第一内存区的总容量。
预先设置第一内存区的总容量为100MB。在第一内存区中已用容量为95MB,可用容量为5MB时,所述第一内存区的总容量自动增大10MB,所述第一内存区的总容量增大为110MB。在第一内存区中已用容量为30MB,可用容量为70MB时,所述第一内存区的总容量自动减小10MB,所述第一内存区的总容量减小为90MB。由此,避免第一内存区的内存空间被用尽,或第一内存区的空闲内存空间过多的情况。
请参照图6,图6是本发明较佳实施例提供的内存分配装置200的方框示意图之一。所述内存分配装置200应用于电子设备100。所述电子设备100的内存包括第一内存区及第二内存区。所述内存分配装置200包括接收模块220、比较模块230及分配模块240。
接收模块220,用于接收内存分配请求,所述内存分配请求包括所需分配的内存容量。
在本实施例中,所述接收模块220用于执行图2中的步骤S120,关于所述接收模块220的具体描述可以参照图2中步骤S120的描述。
比较模块230,用于将所述所需分配的内存容量与预设内存块的容量范围进行比较,得到比较结果。
在本实施例中,所述比较模块230用于执行图2中的步骤S130,关于所述比较模块230的具体描述可以参照图2中步骤S130的描述。
分配模块240,用于根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块。
所述分配模块240根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块的方式包括:
若所述所需分配的内存容量在所述预设内存块的容量范围内,且所述第一内存区的可用内存容量大于所述所需分配的内存容量,从第一内存区分配相应容量的预设内存块;
若所述所需分配的内存容量在所述预设内存块的容量范围内,且所述第一内存区的可用内存容量小于所述所需分配的内存容量,从第二内存区分配相应容量的预设内存块;
若所述所需分配的内存容量不在所述预设内存块的容量范围内,从第一内存区或第二内存区分配相应容量的内存块。
在本实施例中,所述分配模块240用于执行图2中的步骤S140,关于所述分配模块240的具体描述可以参照图2中步骤S140的描述。
请参照图7,图7是本发明较佳实施例提供的内存分配装置200的方框示意图之二。所述内存分配装置200还可以包括配置模块210。
配置模块210,用于对所述电子设备100的内存进行配置,将所述电子设备100的内存配置为第一内存区和第二内存区。
在本实施例中,所述配置模块210用于执行图3中的步骤S110,关于所述配置模块210的具体描述可以参照图3中步骤S110的描述。
请再次参照图7,所述内存分配装置200还可以包括容量调整模块250。容量调整模块250,用于对所述第一内存区的总容量进行调整。
所述容量调整模块250可以包括:
检测子模块251,用于对所述第一内存区中的可用容量进行检测;
调整子模块252,用于根据所述第一内存区中的可用容量与所述第一内存区的总容量的占比,在预设可调容量范围内调整所述第一内存区的总容量。
其中,调整子模块252根据所述第一内存区中的可用容量与所述第一内存区的总容量的占比,在预设可调容量范围内调整所述第一内存区的总容量的方式包括:
当所述占比小于第一预设值时,增大所述第一内存区的总容量;
当所述占比大于第二预设值时,减小所述第一内存区的总容量,其中,所述第二预设值大于所述第一预设值。
在本实施中,所述容量调整模块250用于执行图4中的步骤S150,关于所述容量调整模块250的具体描述可以参照图4中步骤S150的描述。
本发明较佳实施例还提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在电子设备100执行上述内存分配方法。具体描述可以参照对内存分配方法的描述。
综上所述,本发明实施例提供一种内存分配方法、装置、电子设备及可读存储介质。所述方法应用于电子设备。所述电子设备接收内存分配请求,其中,所述分配请求中包括所需分配的内存容量。在将所述所需分配的内存容量与预设内存块的容量范围进行比较后,得到一比较结果。从而根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块,以将不同大小的内存块分开管理。由此降低目前由于不同大小的内存块混合使用而发生碎片化的几率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种内存分配方法,应用于电子设备,其特征在于,所述电子设备的内存包括第一内存区及第二内存区,所述方法包括:
接收内存分配请求,所述内存分配请求包括所需分配的内存容量;
将所述所需分配的内存容量与预设内存块的容量范围进行比较,得到比较结果;
根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块。
2.根据权利要求1所述的方法,其特征在于,所述根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块的步骤包括:
若所述所需分配的内存容量在所述预设内存块的容量范围内,且所述第一内存区的可用内存容量大于所述所需分配的内存容量,从第一内存区分配相应容量的预设内存块;
若所述所需分配的内存容量在所述预设内存块的容量范围内,且所述第一内存区的可用内存容量小于所述所需分配的内存容量,从第二内存区分配相应容量的预设内存块;
若所述所需分配的内存容量不在所述预设内存块的容量范围内,从第一内存区和/或第二内存区分配相应容量的内存块。
3.根据权利要求2所述的方法,其特征在于,所述所需分配的内存容量不在所述预设内存块的容量范围内,从第一内存区或第二内存区分配相应容量的内存块的步骤包括:
若所述第二内存区的可用内存容量大于所述所需分配的内存容量,从所述第二内存区分配相应容量的内存块;
若所述第二内存区的可用内存容量小于所述所需分配的内存容量,则进行内存重整以从所述第一内存区和/或所述第二内存区获得能够满足所述所需分配的内存容量的内存块。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述电子设备的内存进行配置,将所述电子设备的内存配置为第一内存区和第二内存区。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第一内存区的总容量进行调整;
所述对所述第一内存区的总容量进行调整的步骤包括:
对所述第一内存区中的可用容量进行检测;
根据所述第一内存区中的可用容量与所述第一内存区的总容量的占比,在预设可调容量范围内调整所述第一内存区的总容量。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一内存区中的可用容量与所述第一内存区的总容量的占比,在预设可调容量范围内调整所述第一内存区的总容量的步骤包括:
当所述占比小于第一预设值时,增大所述第一内存区的总容量;
当所述占比大于第二预设值时,减小所述第一内存区的总容量,其中,所述第二预设值大于所述第一预设值。
7.一种内存分配装置,应用于电子设备,其特征在于,所述电子设备的内存包括第一内存区及第二内存区,所述装置包括:
接收模块,用于接收内存分配请求,所述内存分配请求包括所需分配的内存容量;
比较模块,用于将所述所需分配的内存容量与预设内存块的容量范围进行比较,得到比较结果;
分配模块,用于根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块。
8.根据权利要求7所述的装置,其特征在于,所述分配模块根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块的方式包括:
若所述所需分配的内存容量在所述预设内存块的容量范围内,且所述第一内存区的可用内存容量大于所述所需分配的内存容量,从第一内存区分配相应容量的预设内存块;
若所述所需分配的内存容量在所述预设内存块的容量范围内,且所述第一内存区的可用内存容量小于所述所需分配的内存容量,从第二内存区分配相应容量的预设内存块;
若所述所需分配的内存容量不在所述预设内存块的容量范围内,从第一内存区和/或第二内存区分配相应容量的内存块。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
配置模块,用于对所述电子设备的内存进行配置,将所述电子设备的内存配置为第一内存区和第二内存区。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
容量调整模块,用于对所述第一内存区的总容量进行调整;
容量调整模块包括:
检测子模块,用于对所述第一内存区中的可用容量进行检测;
调整子模块,用于根据所述第一内存区中的可用容量与所述第一内存区的总容量的占比,在预设可调容量范围内调整所述第一内存区的总容量。
11.根据权利要求10所述的装置,其特征在于,所述调整子模块根据所述第一内存区中的可用容量与所述第一内存区的总容量的占比,在预设可调容量范围内调整所述第一内存区的总容量的方式包括:
当所述占比小于第一预设值时,增大所述第一内存区的总容量;
当所述占比大于第二预设值时,减小所述第一内存区的总容量,其中,所述第二预设值大于所述第一预设值。
12.一种电子设备,其特征在于,所述电子设备的内存包括第一内存区及第二内存区,所述电子设备包括:
存储器;
处理器;及
内存分配装置,所述内存分配装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模块,所述装置包括:
接收模块,用于接收内存分配请求,所述内存分配请求包括所需分配的内存容量;
比较模块,用于将所述所需分配的内存容量与预设内存块的容量范围进行比较,得到比较结果;
分配模块,用于根据所述比较结果从第一内存区或第二内存区分配相应容量的内存块。
13.一种可读存储介质,所述可读存储介质包括计算机程序,其特征在于,
所述计算机程序运行时控制所述可读存储介质所在电子设备执行权利要求1-6中任意一项所述的内存分配方法。
CN201710457637.7A 2017-06-16 2017-06-16 内存分配方法、装置、电子设备及可读存储介质 Pending CN107203477A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201710457637.7A CN107203477A (zh) 2017-06-16 2017-06-16 内存分配方法、装置、电子设备及可读存储介质
US16/623,051 US11106574B2 (en) 2017-06-16 2018-06-11 Memory allocation method, apparatus, electronic device, and computer storage medium
EP18818963.3A EP3633515B1 (en) 2017-06-16 2018-06-11 Memory allocation method, apparatus, electronic device, and computer storage medium
PCT/CN2018/090620 WO2018228327A1 (zh) 2017-06-16 2018-06-11 内存分配方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710457637.7A CN107203477A (zh) 2017-06-16 2017-06-16 内存分配方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN107203477A true CN107203477A (zh) 2017-09-26

Family

ID=59906998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710457637.7A Pending CN107203477A (zh) 2017-06-16 2017-06-16 内存分配方法、装置、电子设备及可读存储介质

Country Status (4)

Country Link
US (1) US11106574B2 (zh)
EP (1) EP3633515B1 (zh)
CN (1) CN107203477A (zh)
WO (1) WO2018228327A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108132889A (zh) * 2017-12-20 2018-06-08 东软集团股份有限公司 内存管理方法、装置、计算机可读存储介质及电子设备
WO2018228327A1 (zh) * 2017-06-16 2018-12-20 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质
CN110609748A (zh) * 2019-09-05 2019-12-24 青岛海信移动通信技术股份有限公司 一种内存分配方法、电子设备及存储介质
CN110895512A (zh) * 2018-09-13 2020-03-20 普天信息技术有限公司 一种内存管理方法
CN111475299A (zh) * 2020-04-03 2020-07-31 Oppo广东移动通信有限公司 内存分配方法、装置、存储介质及电子设备
CN116483740A (zh) * 2023-06-21 2023-07-25 苏州浪潮智能科技有限公司 内存数据的迁移方法、装置、存储介质及电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122883A (zh) * 2006-08-09 2008-02-13 中兴通讯股份有限公司 一种避免内存碎片化的内存分配方法
CN102819497A (zh) * 2012-05-31 2012-12-12 华为技术有限公司 一种内存分配方法、装置及系统
CN103793332A (zh) * 2014-02-28 2014-05-14 中国科学院微电子研究所 基于内存的数据存储方法、装置、处理器和电子设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236249A (ja) * 2000-02-24 2001-08-31 Nec Corp メモリ管理装置およびメモリ管理方法
KR20040101386A (ko) 2002-04-03 2004-12-02 코닌클리케 필립스 일렉트로닉스 엔.브이. 몰핑 메모리 풀들
WO2004021193A1 (en) 2002-08-30 2004-03-11 Koninklijke Philips Electronics N.V. Dynamic memory management
US7263592B2 (en) * 2004-03-29 2007-08-28 International Business Machines Corporation Method for completely lock-free user-level dynamic memory allocation
US7596569B2 (en) * 2004-09-24 2009-09-29 International Business Machines Corporation Method and program for space-efficient representation of objects in a garbage-collected system
US7068545B1 (en) * 2005-01-04 2006-06-27 Arm Limited Data processing apparatus having memory protection unit
US20070156998A1 (en) 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US7958329B2 (en) 2006-10-05 2011-06-07 Waratek Pty Ltd Hybrid replicated shared memory
US8854680B2 (en) * 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
US20100161929A1 (en) 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
CN101923511B (zh) * 2009-06-11 2012-08-08 华为技术有限公司 一种内存管理方法和内存管理系统
WO2011007599A1 (ja) * 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
CN101702138B (zh) * 2009-10-30 2012-01-25 深圳市新飞扬数码技术有限公司 一种内存管理方法、系统及服务器
US8601232B2 (en) 2010-05-31 2013-12-03 Panasonic Corporation Memory management device, memory management method, memory management program, computer-readable recording medium recording memory management program and integrated circuit
JP5853734B2 (ja) * 2012-02-02 2016-02-09 富士通株式会社 仮想ストレージ装置,制御装置及び制御プログラム
CN107203477A (zh) * 2017-06-16 2017-09-26 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122883A (zh) * 2006-08-09 2008-02-13 中兴通讯股份有限公司 一种避免内存碎片化的内存分配方法
CN102819497A (zh) * 2012-05-31 2012-12-12 华为技术有限公司 一种内存分配方法、装置及系统
CN103793332A (zh) * 2014-02-28 2014-05-14 中国科学院微电子研究所 基于内存的数据存储方法、装置、处理器和电子设备

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018228327A1 (zh) * 2017-06-16 2018-12-20 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质
US11106574B2 (en) 2017-06-16 2021-08-31 Oneplus Technology (Shenzhen) Co., Ltd. Memory allocation method, apparatus, electronic device, and computer storage medium
CN108132889A (zh) * 2017-12-20 2018-06-08 东软集团股份有限公司 内存管理方法、装置、计算机可读存储介质及电子设备
CN108132889B (zh) * 2017-12-20 2020-07-10 东软集团股份有限公司 内存管理方法、装置、计算机可读存储介质及电子设备
CN110895512A (zh) * 2018-09-13 2020-03-20 普天信息技术有限公司 一种内存管理方法
CN110609748A (zh) * 2019-09-05 2019-12-24 青岛海信移动通信技术股份有限公司 一种内存分配方法、电子设备及存储介质
CN110609748B (zh) * 2019-09-05 2023-09-01 青岛海信移动通信技术有限公司 一种内存分配方法、电子设备及存储介质
CN111475299A (zh) * 2020-04-03 2020-07-31 Oppo广东移动通信有限公司 内存分配方法、装置、存储介质及电子设备
CN111475299B (zh) * 2020-04-03 2024-05-07 Oppo广东移动通信有限公司 内存分配方法、装置、存储介质及电子设备
CN116483740A (zh) * 2023-06-21 2023-07-25 苏州浪潮智能科技有限公司 内存数据的迁移方法、装置、存储介质及电子装置
CN116483740B (zh) * 2023-06-21 2023-09-05 苏州浪潮智能科技有限公司 内存数据的迁移方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
US11106574B2 (en) 2021-08-31
EP3633515B1 (en) 2022-09-07
EP3633515A1 (en) 2020-04-08
US20200167272A1 (en) 2020-05-28
EP3633515A4 (en) 2021-03-17
WO2018228327A1 (zh) 2018-12-20

Similar Documents

Publication Publication Date Title
CN107203477A (zh) 内存分配方法、装置、电子设备及可读存储介质
CN103210382B (zh) 基于总线装置健康信息和相关功率管理而仲裁通信总线上的总线事务
US20110197081A1 (en) Method and system for distributing power to networked devices
CN102420776B (zh) 动态调整入口资源分配阈值的方法及系统
CN105183565A (zh) 计算机、服务质量控制方法及装置
CN107193753A (zh) 内存重整方法、装置、电子设备及可读存储介质
CN111907365B (zh) 电动汽车充电桩充电控制方法、装置及终端设备
CN106101017B (zh) 一种线路流量控制方法及装置
CN105577573B (zh) 一种信息处理方法及电子设备
CN108874544A (zh) 一种gpu服务器io资源分配的方法及系统
CN107205030A (zh) 服务器资源调度方法及系统
CN109309735B (zh) 连接处理方法、服务器、系统及存储介质
CN112395075A (zh) 资源的处理方法、装置以及资源调度系统
CN111901490A (zh) 资源共享方法、装置、计算机装置及存储介质
CN106776013A (zh) 多系统的资源调度方法及装置
CN115794423A (zh) 一种智能机房的管理方法、装置、电子设备及存储介质
CN104156663B (zh) 一种硬件虚拟端口及处理器系统
CN104063281A (zh) 一种调控虚拟机物理内存的方法和装置
US20080059969A1 (en) Efficient enforced resource consumption rate limits
CN106155910A (zh) 一种实现内存访问的方法、装置和系统
CN103678151A (zh) 虚拟机的块存储设备的配置方法及配置装置
CN107247674B (zh) 内存块类型处理方法、装置、电子设备及可读存储介质
US10333837B2 (en) Virtual network switch system and method of constructing the same
CN114281531B (zh) 一种分配cpu核心的方法、系统、存储介质及设备
CN104680406A (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

Application publication date: 20170926

RJ01 Rejection of invention patent application after publication