CN104461737B - 一种内存管理方法和装置 - Google Patents
一种内存管理方法和装置 Download PDFInfo
- Publication number
- CN104461737B CN104461737B CN201410758180.XA CN201410758180A CN104461737B CN 104461737 B CN104461737 B CN 104461737B CN 201410758180 A CN201410758180 A CN 201410758180A CN 104461737 B CN104461737 B CN 104461737B
- Authority
- CN
- China
- Prior art keywords
- swap
- exchange
- memory
- list
- free memory
- 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.)
- Active
Links
Landscapes
- Memory System (AREA)
Abstract
本发明公开了一种内存管理方法和装置,以在合适的时候回收内存,提高内存管理的效率。所述方法包括:获取拟交换至存储器中划定区域的交换内存,交换内存的大小Mswap使用交换制约因子fswap表征并且与fswap成正比;根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap;在系统空闲内存小于Mf时,压缩以交换制约因子f’swap表征的交换内存,并将压缩的交换内存中的数据交换至划定区域。一方面,本发明提供的方法更加理性,使得进程不会被错杀;另一方面,在系统空闲内存小于Mf时,压缩以计算所得的交换制约因子f’swap表征的交换内存,可以在内存不足时,不仅能够扩展内存空间,而且可以有效地保护进程。
Description
技术领域
本发明属于计算机领域,尤其涉及一种内存管理方法和装置。
背景技术
内存管理,是指软件运行时对计算机内存资源的分配和使用的技术,其主要的目的是如何高效、快速地分配并且在适当的时候释放和回收内存资源,例如,通过在适当时候杀死某些进程,从而可以回收一部分内存资源。随着3G和智能手机时代的来临,智能手机等智能终端上的应用程序越来越多,这类智能手机等智能终端采用多任务的操作系统,可以同时运行着多个任务。为了提高多任务的用户体验,智能手机等智能终端配备了大容量内存。但是,内存容量的增加受到成本、功耗、体积等的限制,内存资源就显得弥足珍贵。因此,相对于一般的终端,智能终端的内存管理更加重要。
以Android操作系统的智能终端为例,现有的一种内存管理方法是:系统为每个进程分配一个重要性评估值即adj值,在应用程序运行时,对系统的空闲页面进行监控。当空闲页面小于某个阈值时,将杀死adj值为某个值的进程。例如,当空闲页面小于30720页数时,将杀死adj值为1000的进程;又如,当空闲页面小于24576页数时,将杀死adj值大于等529的进程,等等。
上述现有的内存管理方法的主要缺陷在于过于简单粗暴,其原因在于,若系统采用这种方法,用户在使用智能手机等智能终端的过程中,会因为内存过低导致很多应用被杀掉、甚至是错误地被杀掉,非常影响用户的体验。
发明内容
本发明提供一种内存管理方法和装置,以在合适的时候回收内存,提高内存管理的效率。
本发明第一方面提供一种内存管理方法,包括:
获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;
根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap;
在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子fswap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
结合第一方面,在第一方面的第一种可能的实现方式中,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:Mswap=(Mtotal/100)*fswap,所述Mtotal为系统可用总内存的大小。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据空闲内存阈值,计算空闲内存阈值为Mf时的交换制约因子f’swap,包括:
获取空闲内存阈值列表;
求取所述Mswap等于所述空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为所述交换制约因子f’swap。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap,包括:
获取空闲内存阈值列表与进程重要性评估值列表;
根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf;
求取所述Mswap等于所述Mf时的fswap作为所述交换制约因子f’swap。
结合第一方面的第二种或者第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表具体为:查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表。
本发明第二方面提供一种内存管理装置,包括:
获取模块,用于获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;
计算模块,用于根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap;
交换模块,用于在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子fswap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
结合第二方面,在第二方面的第一种可能的实现方式中,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:Mswap=(Mtotal/100)*fswap,所述Mtotal为系统可用总内存的大小。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述计算模块包括:
第一列表获取单元,用于获取空闲内存阈值列表;
第一求取单元,用于求取所述Mswap等于所述空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为所述交换制约因子f’swap。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述计算模块包括:
第二列表获取单元,用于获取空闲内存阈值列表与进程重要性评估值列表;
确定单元,用于根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf;
第二求取单元,用于求取所述Mswap等于所述Mf时的fswap作为所述交换制约因子f’swap。
结合第二方面的第二种或者第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一列表获取单元或第二列表获取单元具体通过查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表。
从上述本发明实施例可知,与现有技术在内存不足时简单粗暴地杀死某个进程相比,一方面,由于交换制约因子f’swap是根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,在空闲内存阈值为Mf时计算得到,因此,本发明提供的内存管理方法更加理性,使得进程不会被错杀;另一方面,在系统空闲内存小于Mf时,压缩以计算所得的交换制约因子f’swap表征的交换内存,可以在内存不足时,不仅能够扩展内存空间,而且可以有效地保护进程,明显提升用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的内存管理方法的实现流程示意图;
图2是本发明实施例二提供的内存管理方法的实现流程示意图;
图3是本发明实施例三提供的内存管理方法的实现流程示意图;
图4是本发明实施例四提供的内存管理装置的结构示意图;
图5是本发明实施例五提供的内存管理装置的结构示意图;
图6是本发明实施例六提供的内存管理装置的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种内存管理方法,所述方法包括:获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap;在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子f’swap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。本发明实施例还提供相应的内存管理装置。以下分别进行详细说明。
请参阅附图1,是本发明实施例一提供的内存管理的实现流程,主要包括以下步骤S101至步骤S103:
S101,获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比。
在本发明实施例中,存储器既可以指容量相对较小的内存,也可以是外存这一类存储容量相对较大的存储器件。所谓交换制约因子fswap,是用于制约拟交换至存储器中划定区域的交换内存的大小的一个参数,一般只是由系统给予一个默认值,而在本发明实施例中,交换制约因子fswap表征交换内存的大小Mswap,并且Mswap与fswap成正比。
需要说明的是,无论是内存还是外存,一旦将其中一个区域或者空间划定为交换区域,其将受到特别的保护,即,这部分区域或者空间不能挪作他用,只能用于内存数据的交换。
S102,根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap。
在本发明实施例中,对于Android等操作系统,进程重要性评估值使用adj值来表示,每个进程都有一个相应的adj值。
S103,在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子f’swap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
在本发明实施例中,当内存不足或者系统将要杀死某个进程时,可以将内存中的部分数据进行压缩后交换至存储器,如此,就为需要占用内存的应用腾出了部分空间,从而使得某些进程在内存不足时免于被杀死。待内存变得充足后,再将交换至存储器中的数据换入内存;压缩前的数据占用的内存就是交换内存。。
从上述附图1示例的内存管理方法可知,与现有技术在内存不足时简单粗暴地杀死某个进程相比,一方面,由于交换制约因子f’swap是根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,在空闲内存阈值为Mf时计算得到,因此,本发明提供的内存管理方法更加理性,使得进程不会被错杀;另一方面,在系统空闲内存小于Mf时,压缩以计算所得的交换制约因子f’swap表征的交换内存,可以在内存不足时,不仅能够扩展内存空间,而且可以有效地保护进程,明显提升用户体验。
请参阅附图2,是本发明实施例二提供的内存管理方法的实现流程,主要包括以下步骤S201至步骤S204。
S201,获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比。
本实施例中,除了交换内存的大小Mswap的具体表征方式之外,步骤S201的实现方法与附图1示例的步骤S101的实现方法完全相同,其相关术语、概念等的说明或解释具体可参阅对步骤S101的说明或解释,此处不做赘述。
在本实施例中,交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:Mswap=(Mtotal/100)*fswap,其中,Mtotal为系统可用总内存的大小。对于Android操作系统,Mtotal的大小可通过查询命令得到,例如,输入命令cat/proc/meminfo即可得到memtotal这个参数的大小,memtotal这个参数的大小即Mtotal的大小。
S202,获取空闲内存阈值列表。
空闲内存阈值是系统基于内存管理而给予的一个临界值,空闲内存阈值的给定,意味着系统的空闲内存一旦低于这个值,就需要通过杀死一些进程来释放内存。
在本发明实施例中,空闲内存阈值列表的获取可以通过查询命令的输入获取。例如,对于Android操作系统,可以通过输入以下查询命令:
cat/sys/module/lowmemorykiller/parameters/minfree
cat minfree
来获取,其获取空闲内存阈值列表列出的空闲内存阈值包括12288、15360、18432、21504、24576和30720。需要说明的是,上述12288、15360、18432、21504、24576和30720分别表示内存页面数量,其可以等效地换成内存大小。例如,对于30720,可以通过(30720*4)/1024等效地换成120M大小的内存。
S203,求取所述Mswap等于所述空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为所述交换制约因子f’swap。
在本实施例中,是根据总的内存容量,直接确定一个空闲内存阈值Mf作为系统空闲内存接近于该值时开始启动内存压缩以及被压缩的数据交换至存储器划定区域。根据前述交换内存的大小Mswap与交换制约因子fswap的关系即Mswap=(Mtotal/100)*fswap,在Mswap等于空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为交换制约因子f’swap时,即(Mtotal/100)*fswap=Mf,由此求出的fswap=100*Mf/Mtotal就是交换制约因子f’swap。例如,对于通过获取空闲内存阈值列表所获取的30720等效内存120M,f’swap=100*120/Mtotal。
S204,在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子f’swap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
本实施例中,步骤S204的实现方法与附图1示例的步骤S103的实现方法完全相同,其相关术语、概念等的说明或解释具体可参阅对步骤S103的说明或解释,此处不做赘述。
从上述附图2示例的内存管理方法可知,与现有技术在内存不足时简单粗暴地杀死某个进程相比,一方面,由于交换制约因子f’swap是根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,在空闲内存阈值为Mf时计算得到,因此,本发明提供的内存管理方法更加理性,使得进程不会被错杀;另一方面,在系统空闲内存小于Mf时,压缩以计算所得的交换制约因子f’swap表征的交换内存,可以在内存不足时,不仅能够扩展内存空间,而且可以有效地保护进程,明显提升用户体验。
请参阅附图3,是本发明实施例三提供的内存管理方法的实现流程,主要包括以下步骤S301至步骤S305。
S301,获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比。
本实施例中,除了交换内存的大小Mswap的具体表征方式之外,步骤S301的实现方法与附图1示例的步骤S101的实现方法完全相同,其相关术语、概念等的说明或解释具体可参阅对步骤S101的说明或解释,此处不做赘述。
在本实施例中,交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:Mswap=(Mtotal/100)*fswap,其中,Mtotal为系统可用总内存的大小。对于Android操作系统,Mtotal的大小可通过查询命令得到,例如,输入命令cat/proc/meminfo即可得到memtotal这个参数的大小,memtotal这个参数的大小即Mtotal的大小。
S302,获取空闲内存阈值列表与进程重要性评估值列表。
在本实施例中,进程重要性评估值列表列出了一组进程重要性评估值,对于Android操作系统,就是一组adj值。与前述附图2的示例类似,空闲内存阈值列表与进程重要性评估值列表都可以通过查询命令的输入获取。例如,对于Android操作系统,可以通过输入如下查询命令:
cat/sys/module/lowmemorykiller/parameters/minfree
cat minfree
来获取空闲内存阈值列表,其列出的空闲内存阈值包括12288、15360、18432、21504、24576和30720。需要说明的是,上述12288、15360、18432、21504、24576和30720分别表示内存页面数量,其可以等效地换成内存大小。例如,对于30720,可以通过(30720*4)/1024等效地换成120M大小的内存,12288、15360、18432、21504、24576和30720等效地换成内存大小分别是:48M、60M、72M、84M、96M和120M。
类似地,对于Android操作系统,可以通过输入如下查询命令:
cat/sys/module/lowmemorykiller/parameters/adj
来获取进程重要性评估值列表,其列出的进程重要性评估值即adj值包括0、58、117、176、529和1000。
S303,根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf。
以上述获取的空闲内存阈值列表与进程重要性评估值列表中的空闲内存阈值与进程重要性评估值为例,空闲内存阈值列表列出的空闲内存阈值:48M、60M、72M、84M、96M和120M,分别与进程重要性评估值列表列出的进程重要性评估值:0、58、117、176、529和1000一一对应。
与附图2示例的方法是直接根据空闲内存阈值确定内存压缩与数据交换的时机不同,在本实施例中,是根据一个进程重要性评估值来确定一个与之对应的空闲内存阈值,从而确定内存压缩与数据交换的时机,这种方式有利于直接保护其重要性评估值大于这一确定的进程重要性评估值的进程。
例如,进程P的进程重要性评估值即adj值是1010,按照现有的方法,其在系统空闲内存不足120M时,进程P就可能被杀死。若根据上述进程重要性评估值1000计算出一个交换制约因子fpswap,则在系统空闲内存不足120M时,则开始根据交换制约因子fpswap压缩内存,并在后续将被压缩内存中的数据交换至存储器划定区域,从而腾出内存空间。如此,在内存不足时,这种方式直接保护了进程P免于被杀死。
S304,求取Mswap等于Mf时的fswap作为交换制约因子f’swap。
在本实施例中,根据前述交换内存的大小Mswap与交换制约因子fswap的关系即Mswap=(Mtotal/100)*fswap,在Mswap等于空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为交换制约因子f’swap时,即(Mtotal/100)*fswap=Mf,由此求出的fswap=100*Mf/Mtotal就是交换制约因子f’swap。例如,对于通过获取空闲内存阈值列表所获取的30720等效内存120M,f’swap=100*120/Mtotal。
S305,在系统空闲内存小于步骤S303确定的Mf时,压缩以计算所得的交换制约因子f’swap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
本实施例中,步骤S305的实现方法与附图1示例的步骤S103或者附图2示例的步骤S204的实现方法完全相同,其相关术语、概念等的说明或解释具体可参阅对步骤S103或者附图2示例的步骤S204的说明或解释,此处不做赘述。
请参阅附图4,是本发明实施例四提供的内存管理装置的结构示意图。为了便于说明,仅示出了与本发明实施例相关的部分。附图4示例的内存管理装置可以是前述实施例提供的内存管理方法的执行主体,其可以是智能手机、平板电脑等智能终端中的一个功能模块。附图4示例的内存管理装置主要包括获取模块401、计算模块402和交换模块403,各功能模块详细说明如下:
获取模块401,用于获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;
计算模块402,用于根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap;
交换模块403,用于在系统空闲内存小于Mf时,压缩以所述计算模块402计算所得的交换制约因子fswap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
需要说明的是,以上附图4示例的内存管理装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述内存管理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的编码获取模块,可以是具有执行前述获取拟交换至存储器中划定区域的交换内存的硬件,例如编码获取器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的交换模块,可以是执行所述在系统空闲内存小于所述Mf时,压缩以所述计算模块(或计算器)计算所得的交换制约因子fswap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域的硬件,例如交换器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
在上述附图4示例的内存管理装置中,交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:Mswap=(Mtotal/100)*fswap,其中,Mtotal为系统可用总内存的大小。
在交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为Mswap=(Mtotal/100)*fswap时,附图4示例的计算模块402包括第一列表获取单元501和第一求取单元502,如附图5所示本发明实施例五提供的内存管理装置,其中:
第一列表获取单元501,用于获取空闲内存阈值列表;
第一求取单元502,用于求取获取模块401获取的Mswap等于第一列表获取单元501获取的空闲内存阈值列表中一个空闲内存阈值Mf时的fswap作为交换制约因子f’swap。
在交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为Mswap=(Mtotal/100)*fswap时,附图4示例的计算模块402包括第二列表获取单元601、确定单元602和第二求取单元603,如附图6所示本发明实施例六提供的内存管理装置,其中:
第二列表获取单元601,用于获取空闲内存阈值列表与进程重要性评估值列表;
确定单元602,用于根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf;
第二求取单元603,用于求取获取模块401获取的Mswap等于确定单元602确定的Mf时的fswap作为交换制约因子f’swap。
附图5或附图6示例的内存管理装置中,第一列表获取单元501或第二列表获取单元601具体通过查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表,具体可以参阅前述方法实施例的说明,此处不做赘述。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种内存管理方法,其特征在于,所述方法包括:
获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;所述划定区域用于内存数据的交换,不能挪作他用;
根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap;
在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子f’swap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域;
所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:Mswap=(Mtotal/100)*fswap,所述Mtotal为系统可用总内存的大小。
2.如权利要求1所述的方法,其特征在于,所述根据空闲内存阈值,计算空闲内存阈值为Mf时的交换制约因子f’swap,包括:
获取空闲内存阈值列表;
求取所述Mswap等于所述空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为所述交换制约因子f’swap。
3.如权利要求1所述的方法,其特征在于,所述根据空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap,包括:
获取空闲内存阈值列表与进程重要性评估值列表;
根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf;
求取所述Mswap等于所述Mf时的fswap作为所述交换制约因子f’swap。
4.如权利要求2或3所述的方法,其特征在于,所述获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表具体为:查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表。
5.一种内存管理装置,其特征在于,所述装置包括:
获取模块,用于获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;所述划定区域用于内存数据的交换,不能挪作他用;
计算模块,用于根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap;
交换模块,用于在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子fswap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域;
所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:Mswap=(Mtotal/100)*fswap,所述Mtotal为系统可用总内存的大小。
6.如权利要求5所述的装置,其特征在于,所述计算模块包括:
第一列表获取单元,用于获取空闲内存阈值列表;
第一求取单元,用于求取所述Mswap等于所述空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为所述交换制约因子f’swap。
7.如权利要求5所述的装置,其特征在于,所述计算模块包括:
第二列表获取单元,用于获取空闲内存阈值列表与进程重要性评估值列表;
确定单元,用于根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf;
第二求取单元,用于求取所述Mswap等于所述Mf时的fswap作为所述交换制约因子f’swap。
8.如权利要求6或7所述的装置,其特征在于,所述第一列表获取单元或第二列表获取单元具体通过查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410758180.XA CN104461737B (zh) | 2014-12-10 | 2014-12-10 | 一种内存管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410758180.XA CN104461737B (zh) | 2014-12-10 | 2014-12-10 | 一种内存管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461737A CN104461737A (zh) | 2015-03-25 |
CN104461737B true CN104461737B (zh) | 2018-01-16 |
Family
ID=52907835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410758180.XA Active CN104461737B (zh) | 2014-12-10 | 2014-12-10 | 一种内存管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461737B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220076B (zh) | 2016-09-27 | 2018-10-30 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN107885666B (zh) | 2016-09-28 | 2021-07-20 | 华为技术有限公司 | 一种内存管理方法和装置 |
JP6541930B2 (ja) * | 2017-05-17 | 2019-07-10 | 三菱電機株式会社 | メモリ管理システム、情報処理装置およびメモリの管理方法 |
CN107506237A (zh) * | 2017-07-07 | 2017-12-22 | 杭州联吉技术有限公司 | 一种网络摄像机及其内存整理方法和装置 |
CN108228339B (zh) * | 2017-07-28 | 2021-08-13 | 珠海市魅族科技有限公司 | 一种内存回收方法及装置、终端设备及计算机可读存储介质 |
CN108932163A (zh) * | 2018-06-15 | 2018-12-04 | 奇酷互联网络科技(深圳)有限公司 | 内存管理方法、装置、可读存储介质及终端 |
CN110489232A (zh) * | 2019-08-12 | 2019-11-22 | 新华三技术有限公司成都分公司 | 资源隔离方法、装置、电子设备及存储介质 |
CN110865884A (zh) * | 2019-09-30 | 2020-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866677A (zh) * | 2009-04-20 | 2010-10-20 | 英业达股份有限公司 | 使用内存的方法 |
CN102226894A (zh) * | 2011-05-23 | 2011-10-26 | 中兴通讯股份有限公司 | 一种移动设备内存管理方法及装置 |
CN103106093A (zh) * | 2013-02-21 | 2013-05-15 | 北京奇虎科技有限公司 | 一种系统运行加速方法和装置 |
CN103455438A (zh) * | 2013-07-30 | 2013-12-18 | 华为技术有限公司 | 一种内存管理方法及设备 |
CN103713882A (zh) * | 2013-12-20 | 2014-04-09 | 华为技术有限公司 | 一种数据换入内存的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6615334B2 (en) * | 2000-12-27 | 2003-09-02 | International Business Machines Corporation | Method and apparatus for I/O data management with an I/O buffer in compressed memory subsystem |
-
2014
- 2014-12-10 CN CN201410758180.XA patent/CN104461737B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866677A (zh) * | 2009-04-20 | 2010-10-20 | 英业达股份有限公司 | 使用内存的方法 |
CN102226894A (zh) * | 2011-05-23 | 2011-10-26 | 中兴通讯股份有限公司 | 一种移动设备内存管理方法及装置 |
CN103106093A (zh) * | 2013-02-21 | 2013-05-15 | 北京奇虎科技有限公司 | 一种系统运行加速方法和装置 |
CN103455438A (zh) * | 2013-07-30 | 2013-12-18 | 华为技术有限公司 | 一种内存管理方法及设备 |
CN103713882A (zh) * | 2013-12-20 | 2014-04-09 | 华为技术有限公司 | 一种数据换入内存的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104461737A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461737B (zh) | 一种内存管理方法和装置 | |
CN104536869B (zh) | 移动终端及其资源管理方法 | |
CN107526645B (zh) | 一种通信优化方法及系统 | |
CN108363623A (zh) | Gpu资源调度方法、装置、设备及计算机可读存储介质 | |
CN107608667A (zh) | 一种业务流程的更新方法及装置 | |
CN107026877A (zh) | 云平台中管理资源的方法和装置 | |
CN108052396A (zh) | 一种资源分配方法及系统 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
CN103399781B (zh) | 云服务器及其虚拟机管理方法 | |
CN106502918B (zh) | 一种内存调度方法及装置 | |
CN104461649B (zh) | 芯片兼容方法及装置 | |
CN104572251B (zh) | 虚拟机部署方法和装置 | |
CN111984400A (zh) | 神经网络的内存分配方法及装置 | |
CN105210324B (zh) | 策略与计费规则功能虚拟化方法、装置及系统 | |
CN110852559A (zh) | 资源的分配方法和装置、存储介质、电子装置 | |
CN103516763A (zh) | 资源处理方法和系统以及装置 | |
CN108021405A (zh) | 一种soc系统启动过程中存储介质的驱动方法和装置 | |
CN111767139A (zh) | 一种跨地域多数据中心资源云服务建模方法及系统 | |
CN102932416A (zh) | 一种信息流任务的中间数据存储方法、处理方法及装置 | |
CN108183814A (zh) | 用电信息采集系统的通信信道的故障排查方法和装置 | |
CN110471747A (zh) | 一种dma多通道的调度使用方法、装置及终端设备 | |
CN108710538A (zh) | 一种线程配置方法、计算机可读存储介质及终端设备 | |
CN104184685B (zh) | 数据中心资源分配方法、装置及系统 | |
CN108647007A (zh) | 运算系统及芯片 | |
CN109240893A (zh) | 应用运行状态查询方法及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., Ltd. Address before: Changan town in Guangdong province Dongguan 523841 usha Beach Road No. 18 Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., Ltd. |