一种内存管理方法和装置制造方法

文档序号:6638156阅读:167来源:国知局
一种内存管理方法和装置制造方法
【专利摘要】本发明公开了一种内存管理方法和装置,以在合适的时候回收内存,提高内存管理的效率。所述方法包括:获取拟交换至存储器中划定区域的交换内存,交换内存的大小Mswap使用交换制约因子fswap表征并且与fswap成正比;根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’swap;在系统空闲内存小于Mf时,压缩以交换制约因子f’swap表征的交换内存,并将压缩的交换内存中的数据交换至划定区域。一方面,本发明提供的方法更加理性,使得进程不会被错杀;另一方面,在系统空闲内存小于Mf时,压缩以计算所得的交换制约因子f’swap表征的交换内存,可以在内存不足时,不仅能够扩展内存空间,而且可以有效地保护进程。
【专利说明】一种内存管理方法和装置

【技术领域】
[0001 ] 本发明属于计算机领域,尤其涉及一种内存管理方法和装置。

【背景技术】
[0002]内存管理,是指软件运行时对计算机内存资源的分配和使用的技术,其主要的目的是如何高效、快速地分配并且在适当的时候释放和回收内存资源,例如,通过在适当时候杀死某些进程,从而可以回收一部分内存资源。随着3G和智能手机时代的来临,智能手机等智能终端上的应用程序越来越多,这类智能手机等智能终端采用多任务的操作系统,可以同时运行着多个任务。为了提高多任务的用户体验,智能手机等智能终端配备了大容量内存。但是,内存容量的增加受到成本、功耗、体积等的限制,内存资源就显得弥足珍贵。因此,相对于一般的终端,智能终端的内存管理更加重要。
[0003]以Android操作系统的智能终端为例,现有的一种内存管理方法是:系统为每个进程分配一个重要性评估值即adj值,在应用程序运行时,对系统的空闲页面进行监控。当空闲页面小于某个阈值时,将杀死adj值为某个值的进程。例如,当空闲页面小于30720页数时,将杀死adj值为1000的进程;又如,当空闲页面小于24576页数时,将杀死adj值大于等529的进程,等等。
[0004]上述现有的内存管理方法的主要缺陷在于过于简单粗暴,其原因在于,若系统采用这种方法,用户在使用智能手机等智能终端的过程中,会因为内存过低导致很多应用被杀掉、甚至是错误地被杀掉,非常影响用户的体验。


【发明内容】

[0005]本发明提供一种内存管理方法和装置,以在合适的时候回收内存,提高内存管理的效率。
[0006]本发明第一方面提供一种内存管理方法,包括:
[0007]获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;
[0008]根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f ’ swap ;
[0009]在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子fswap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
[0010]结合第一方面,在第一方面的第一种可能的实现方式中,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:Mswap = (Mtotal/100)*fswap,所述Mttrtal为系统可用总内存的大小。
[0011]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据空闲内存阈值,计算空闲内存阈值为Mf时的交换制约因子f’ swap,包括:
[0012]获取空闲内存阈值列表;
[0013]求取所述Mswap等于所述空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为所述交换制约因子f’ swap。
[0014]结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’ swap,包括:
[0015]获取空闲内存阈值列表与进程重要性评估值列表;
[0016]根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf ;
[0017]求取所述Mswap等于所述Mf时的fswap作为所述交换制约因子f’ swap。
[0018]结合第一方面的第二种或者第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表具体为:查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表。
[0019]本发明第二方面提供一种内存管理装置,包括:
[0020]获取模块,用于获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;
[0021]计算模块,用于根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’ swap;
[0022]交换模块,用于在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子4_表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
[0023]结合第二方面,在第二方面的第一种可能的实现方式中,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:Mswap = (Mtotal/100)*fswap,所述Mttrtal为系统可用总内存的大小。
[0024]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述计算模块包括:
[0025]第一列表获取单元,用于获取空闲内存阈值列表;
[0026]第一求取单元,用于求取所述Mswap等于所述空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为所述交换制约因子f ’ swap。
[0027]结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述计算模块包括:
[0028]第二列表获取单元,用于获取空闲内存阈值列表与进程重要性评估值列表;
[0029]确定单元,用于根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf;
[0030]第二求取单元,用于求取所述Mswap等于所述Mf时的fswap作为所述交换制约因子f ,
丄swap ο
[0031]结合第二方面的第二种或者第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一列表获取单元或第二列表获取单元具体通过查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表。
[0032]从上述本发明实施例可知,与现有技术在内存不足时简单粗暴地杀死某个进程相比,一方面,由于交换制约因子f’swap是根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,在空闲内存阈值为Mf时计算得到,因此,本发明提供的内存管理方法更加理性,使得进程不会被错杀;另一方面,在系统空闲内存小于Mf时,压缩以计算所得的交换制约因子f’ 3_表征的交换内存,可以在内存不足时,不仅能够扩展内存空间,而且可以有效地保护进程,明显提升用户体验。

【专利附图】

【附图说明】
[0033]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0034]图1是本发明实施例一提供的内存管理方法的实现流程示意图;
[0035]图2是本发明实施例二提供的内存管理方法的实现流程示意图;
[0036]图3是本发明实施例三提供的内存管理方法的实现流程示意图;
[0037]图4是本发明实施例四提供的内存管理装置的结构示意图;
[0038]图5是本发明实施例五提供的内存管理装置的结构示意图;
[0039]图6是本发明实施例六提供的内存管理装置的结构示意图。

【具体实施方式】
[0040]为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]本发明实施例提供一种内存管理方法,所述方法包括:获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’ swap ;在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子f’ 3_表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。本发明实施例还提供相应的内存管理装置。以下分别进行详细说明。
[0042]请参阅附图1,是本发明实施例一提供的内存管理的实现流程,主要包括以下步骤SlOl至步骤S103:
[0043]S101,获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比。
[0044]在本发明实施例中,存储器既可以指容量相对较小的内存,也可以是外存这一类存储容量相对较大的存储器件。所谓交换制约因子fswap,是用于制约拟交换至存储器中划定区域的交换内存的大小的一个参数,一般只是由系统给予一个默认值,而在本发明实施例中,交换制约因子fswap表征交换内存的大小Mswap,并且Mswap与fswap成正比。
[0045]需要说明的是,无论是内存还是外存,一旦将其中一个区域或者空间划定为交换区域,其将受到特别的保护,即,这部分区域或者空间不能挪作他用,只能用于内存数据的交换。
[0046]S102,根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’ swap。
[0047]在本发明实施例中,对于Android等操作系统,进程重要性评估值使用adj值来表示,每个进程都有一个相应的adj值。
[0048]S103,在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子f’swap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
[0049]在本发明实施例中,当内存不足或者系统将要杀死某个进程时,可以将内存中的部分数据进行压缩后交换至存储器,如此,就为需要占用内存的应用腾出了部分空间,从而使得某些进程在内存不足时免于被杀死。待内存变得充足后,再将交换至存储器中的数据换入内存;压缩前的数据占用的内存就是交换内存。。
[0050]从上述附图1示例的内存管理方法可知,与现有技术在内存不足时简单粗暴地杀死某个进程相比,一方面,由于交换制约因子f’swap是根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,在空闲内存阈值为Mf时计算得到,因此,本发明提供的内存管理方法更加理性,使得进程不会被错杀;另一方面,在系统空闲内存小于Mf时,压缩以计算所得的交换制约因子f’ 3_表征的交换内存,可以在内存不足时,不仅能够扩展内存空间,而且可以有效地保护进程,明显提升用户体验。
[0051]请参阅附图2,是本发明实施例二提供的内存管理方法的实现流程,主要包括以下步骤S201至步骤S204。
[0052]S201,获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比。
[0053]本实施例中,除了交换内存的大小Mswap的具体表征方式之外,步骤S201的实现方法与附图1示例的步骤SlOl的实现方法完全相同,其相关术语、概念等的说明或解释具体可参阅对步骤SlOl的说明或解释,此处不做赘述。
[0054]在本实施例中,交换内存的大小Mswap使用交换制约因子f swap表征并且与所述fswap成正比具体为:M

swap(Mtotal

/100)*fswap,其中,Mtotal为系统可用总内存的大小。对于Android操作系统,Mtotal的大小可通过查询命令得到,例如,输入命令cat/proc/meminfo即可得到memtotal这个参数的大小,memtotal这个参数的大小即Mtrtal的大小。
[0055]S202,获取空闲内存阈值列表。
[0056]空闲内存阈值是系统基于内存管理而给予的一个临界值,空闲内存阈值的给定,意味着系统的空闲内存一旦低于这个值,就需要通过杀死一些进程来释放内存。
[0057]在本发明实施例中,空闲内存阈值列表的获取可以通过查询命令的输入获取。例如,对于Android操作系统,可以通过输入以下查询命令:
[0058]cat/sys/mo duIe/1owmemoryk i11er/parameters/minfree
[0059]cat minfree
[0060]来获取,其获取空闲内存阈值列表列出的空闲内存阈值包括12288、15360、
18432,21504,24576和 30720。需要说明的是,上述 12288、15360、18432、21504、24576 和30720分别表示内存页面数量,其可以等效地换成内存大小。例如,对于30720,可以通过(30720*4)/1024等效地换成120M大小的内存。
[0061]S203,求取所述Mswap等于所述空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为所述交换制约因子f’ swap。
[0062]在本实施例中,是根据总的内存容量,直接确定一个空闲内存阈值Mf作为系统空闲内存接近于该值时开始启动内存压缩以及被压缩的数据交换至存储器划定区域。根据前述交换内存的大小Mswap与交换制约因子fswap的关系即Mswap = (MtQtal/100)*fswap,在Mswap等于空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为交换制约因子f’ swap时,即(Mtotal/100)*fswap = Mf,由此求出的 fswap = 100*Mf/Mtotal 就是交换制约因子 f’swap。例如,对于通过获取空闲内存阈值列表所获取的30720等效内存120M,f’ swap = 100*120/Mt()tal。
[0063]S204,在系统空闲内存小于所述Mf时,压缩以所述计算所得的交换制约因子f’swap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
[0064]本实施例中,步骤S204的实现方法与附图1示例的步骤S103的实现方法完全相同,其相关术语、概念等的说明或解释具体可参阅对步骤S103的说明或解释,此处不做赘述。
[0065]从上述附图2示例的内存管理方法可知,与现有技术在内存不足时简单粗暴地杀死某个进程相比,一方面,由于交换制约因子f’swap是根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,在空闲内存阈值为Mf时计算得到,因此,本发明提供的内存管理方法更加理性,使得进程不会被错杀;另一方面,在系统空闲内存小于Mf时,压缩以计算所得的交换制约因子f’ 3_表征的交换内存,可以在内存不足时,不仅能够扩展内存空间,而且可以有效地保护进程,明显提升用户体验。
[0066]请参阅附图3,是本发明实施例三提供的内存管理方法的实现流程,主要包括以下步骤S301至步骤S305。
[0067]S301,获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比。
[0068]本实施例中,除了交换内存的大小Mswap的具体表征方式之外,步骤S301的实现方法与附图1示例的步骤SlOl的实现方法完全相同,其相关术语、概念等的说明或解释具体可参阅对步骤SlOl的说明或解释,此处不做赘述。
[0069]在本实施例中,交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:M

swap(Mtotal

/100)*fswap,其中,Mtotal为系统可用总内存的大小。对于Android操作系统,Mtotal的大小可通过查询命令得到,例如,输入命令cat/proc/meminfo即可得到memtotal这个参数的大小,memtotal这个参数的大小即Mtrtal的大小。
[0070]S302,获取空闲内存阈值列表与进程重要性评估值列表。
[0071]在本实施例中,进程重要性评估值列表列出了一组进程重要性评估值,对于Android操作系统,就是一组adj值。与前述附图2的示例类似,空闲内存阈值列表与进程重要性评估值列表都可以通过查询命令的输入获取。例如,对于Android操作系统,可以通过输入如下查询命令:
[0072]cat/sys/module/lowmemorykiller/parameters/minfree
[0073]cat minfree
[0074]来获取空闲内存阈值列表,其列出的空闲内存阈值包括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。
[0075]类似地,对于Android操作系统,可以通过输入如下查询命令:
[0076]cat/sys/module/lowmemorykiller/parameters/adj
[0077]来获取进程重要性评估值列表,其列出的进程重要性评估值即adj值包括0、58、117、176、529 和 1000。
[0078]S303,根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf。
[0079]以上述获取的空闲内存阈值列表与进程重要性评估值列表中的空闲内存阈值与进程重要性评估值为例,空闲内存阈值列表列出的空闲内存阈值:48M、60M、72M、84M、96M和120M,分别与进程重要性评估值列表列出的进程重要性评估值:0、58、117、176、529和1000——对应。
[0080]与附图2示例的方法是直接根据空闲内存阈值确定内存压缩与数据交换的时机不同,在本实施例中,是根据一个进程重要性评估值来确定一个与之对应的空闲内存阈值,从而确定内存压缩与数据交换的时机,这种方式有利于直接保护其重要性评估值大于这一确定的进程重要性评估值的进程。
[0081]例如,进程P的进程重要性评估值即adj值是1010,按照现有的方法,其在系统空闲内存不足120M时,进程P就可能被杀死。若根据上述进程重要性评估值1000计算出一个交换制约因子fpswap,则在系统空闲内存不足120M时,则开始根据交换制约因子fpswap压缩内存,并在后续将被压缩内存中的数据交换至存储器划定区域,从而腾出内存空间。如此,在内存不足时,这种方式直接保护了进程P免于被杀死。
[0082]S304,求取Mswap等于Mf时的fswap作为交换制约因子f ’ swap。
[0083]在本实施例中,根据前述交换内存的大小Mswap与交换制约因子fswap的关系即Mswap=(Mt()tal/100)*fswap,在Mswap等于空闲内存阈值列表一个空闲内存阈值Mf时的fswap作为交换制约因子f’ swap时,即(Mtotal/100)*fswap = Mf,由此求出的fSMP = 100*Mf/Mtotal就是交换制约因子f’ swap。例如,对于通过获取空闲内存阈值列表所获取的30720等效内存120M,f,swap = 100*120/Mtotal。
[0084]S305,在系统空闲内存小于步骤S303确定的Mf时,压缩以计算所得的交换制约因子f’ 3_表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
[0085]本实施例中,步骤S305的实现方法与附图1示例的步骤S103或者附图2示例的步骤S204的实现方法完全相同,其相关术语、概念等的说明或解释具体可参阅对步骤S103或者附图2示例的步骤S204的说明或解释,此处不做赘述。
[0086]请参阅附图4,是本发明实施例四提供的内存管理装置的结构示意图。为了便于说明,仅示出了与本发明实施例相关的部分。附图4示例的内存管理装置可以是前述实施例提供的内存管理方法的执行主体,其可以是智能手机、平板电脑等智能终端中的一个功能模块。附图4示例的内存管理装置主要包括获取模块401、计算模块402和交换模块403,各功能模块详细说明如下:
[0087]获取模块401,用于获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比;
[0088]计算模块402,用于根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为Mf时的交换制约因子f’ swap ;
[0089]交换模块403,用于在系统空闲内存小于Mf时,压缩以所述计算模块402计算所得的交换制约因子4_表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
[0090]需要说明的是,以上附图4示例的内存管理装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述内存管理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的编码获取模块,可以是具有执行前述获取拟交换至存储器中划定区域的交换内存的硬件,例如编码获取器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的交换模块,可以是执行所述在系统空闲内存小于所述Mf时,压缩以所述计算模块(或计算器)计算所得的交换制约因子fswap表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域的硬件,例如交换器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
[0091]在上述附图4示例的内存管理装置中,交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为:M



swap(Mt otal
/100)*fswap,其中,Mtotal为系统可用总内存的大小。
[0092]在交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为Mswap = (Mtotal/100)^fswap时,附图4示例的计算模块402包括第一列表获取单元501和第一求取单元502,如附图5所示本发明实施例五提供的内存管理装置,其中:
[0093]第一列表获取单元501,用于获取空闲内存阈值列表;
[0094]第一求取单兀502,用于求取获取模块401获取的Mswap等于第一列表获取单兀501获取的空闲内存阈值列表中一个空闲内存阈值Mf时的fswap作为交换制约因子f’ swap。
[0095]在交换内存的大小Mswap使用交换制约因子fswap表征并且与所述fswap成正比具体为Mswap = (Mtotal/100) ^fswap时,附图4示例的计算模块402包括第二列表获取单元601、确定单元602和第二求取单元603,如附图6所示本发明实施例六提供的内存管理装置,其中:
[0096]第二列表获取单元601,用于获取空闲内存阈值列表与进程重要性评估值列表;
[0097]确定单元602,用于根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值Mf ;
[0098]第二求取单元603,用于求取获取模块401获取的Mswap等于确定单元602确定的Mf时的fswap作为交换制约因子f ’ swap。
[0099]附图5或附图6示例的内存管理装置中,第一列表获取单元501或第二列表获取单元601具体通过查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表,具体可以参阅前述方法实施例的说明,此处不做赘述。
[0100]需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0101]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0102]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0103]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0104]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0105]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0106]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0107]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种内存管理方法,其特征在于,所述方法包括: 获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小使用交换制约因子:1--?)表征并且与所述:1--?)成正比; 根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为时的交换制约因子8--); 在系统空闲内存小于所述虹时,压缩以所述计算所得的交换制约因子8冊?表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
2.如权利要求1所述的方法,其特征在于,所述交换内存的大小18阶印使用交换制约因子:1--?)表征并且与所述:1--?)成正比具体为为系统可用总内存的大小。
3.如权利要求2所述的方法,其特征在于,所述根据空闲内存阈值,计算空闲内存阈值为虹时的交换制约因子8冊?,包括: 获取空闲内存阈值列表; 求取所述18冊?等于所述空闲内存阈值列表一个空闲内存阈值虹时的作为所述交换制约因子8界叩。
4.如权利要求2所述的方法,其特征在于,所述根据空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为虹时的交换制约因子8冊?,包括: 获取空闲内存阈值列表与进程重要性评估值列表; 根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值; 求取所述18--)等于所述时的:1--?)作为所述交换制约因子洲叩。
5.如权利要求3或4所述的方法,其特征在于,所述获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表具体为:查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表。
6.一种内存管理装置,其特征在于,所述装置包括: 获取模块,用于获取拟交换至存储器中划定区域的交换内存,所述交换内存的大小18界叩使用交换制约因子表征并且与所述成正比; 计算模块,用于根据空闲内存阈值或者空闲内存阈值和进程重要性评估值的关系,计算空闲内存阈值为虹时的交换制约因子8冊?; 交换模块,用于在系统空闲内存小于所述虹时,压缩以所述计算所得的交换制约因子 表征的交换内存,并将所述压缩的交换内存中的数据交换至所述划定区域。
7.如权利要求6所述的装置,其特征在于,所述交换内存的大小18--)使用交换制约因子:1--?)表征并且与所述:1--?)成正比具体为为系统可用总内存的大小。
8.如权利要求7所述的装置,其特征在于,所述计算模块包括: 第一列表获取单兀,用于获取空闲内存阈值列表; 第一求取单元,用于求取所述18冊?等于所述空闲内存阈值列表一个空闲内存阈值虹时的:1--?)作为所述交换制约因子洲叩。
9.如权利要求7所述的装置,其特征在于,所述计算模块包括: 第二列表获取单元,用于获取空闲内存阈值列表与进程重要性评估值列表; 确定单元,用于根据空闲内存阈值列表与进程重要性评估值列表中空闲内存阈值与进程重要性评估值一一对应的关系,确定一个进程重要性评估值所对应的空闲内存阈值第二求取单元,用于求取所述18--)等于所述时的作为所述交换制约因子
10.如权利要求8或9所述的装置,其特征在于,所述第一列表获取单元或第二列表获取单元具体通过查询命令的输入,获取空闲内存阈值列表或空闲内存阈值列表和进程重要性评估值列表。
【文档编号】G06F9/50GK104461737SQ201410758180
【公开日】2015年3月25日 申请日期:2014年12月10日 优先权日:2014年12月10日
【发明者】曾元清 申请人:广东欧珀移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1