一种内存回收方法、装置、设备及介质转让专利

申请号 : CN201810892677.9

文献号 : CN110858178A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邓太平

申请人 : 广州小鹏汽车科技有限公司

摘要 :

本发明实施例公开了一种内存回收方法、装置、设备及介质,用于解决系统长时间处于运行状态所导致的内存泄漏问题。所述内存回收方法,包括:获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存;基于预先配置的内存泄漏级别表,根据获取到的每个进程的实际使用物理内存,确定每个进程的内存泄漏级别,所述内存泄漏级别表中包括进程标识、内存泄漏阈值以及内存泄漏级别之间的对应关系;关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。

权利要求 :

1.一种内存回收方法,其特征在于,包括:

获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存;

基于预先配置的内存泄漏级别表,根据获取到的每个进程的实际使用物理内存,确定每个进程的内存泄漏级别,所述内存泄漏级别表中包括进程标识、内存泄漏阈值以及内存泄漏级别之间的对应关系;

关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。

2.根据权利要求1所述的方法,其特征在于,所述关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,包括:获取所述系统中处于运行状态的每个进程的运行优先级;

在运行优先级高于预设优先级阈值的进程中,关闭部分或全部内存泄漏级别大于所述第一预设级别阈值的进程。

3.根据权利要求1所述的方法,其特征在于,所述关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,包括:依据所需释放的内存空间量以及每个内存泄漏级别大于所述第一预设级别阈值的进程的实际使用物理内存,关闭部分或全部内存泄漏级别大于所述第一预设级别阈值的进程,其中,关闭的所有进程的实际使用物理内存之和大于或等于所述所需释放的内存空间量。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在确定系统处于空闲状态的条件下,关闭内存泄漏级别大于第二预设级别阈值的进程,其中,所述第一预设级别阈值高于所述第二预设级别阈值。

5.根据权利要求1-4中任一项所述的方法,其特征在于,所述获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存,包括:在所述系统可分配物理内存空间小于预设空间阈值的条件下,获取所述系统中处于运行状态的每个进程的进程标识和实际使用物理内存。

6.一种内存回收装置,其特征在于,包括:

获取单元,用于获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存;

处理单元,用于基于预先配置的内存泄漏级别表,根据获取到的每个进程的实际使用物理内存,确定每个进程的内存泄漏级别,所述内存泄漏级别表中包括进程标识、内存泄漏阈值以及内存泄漏级别之间的对应关系;

回收单元,用于关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。

7.根据权利要求6所述的装置,其特征在于,所述回收单元,具体用于:获取所述系统中处于运行状态的每个进程的运行优先级;

在运行优先级高于预设优先级阈值的进程中,关闭部分或全部内存泄漏级别大于所述第一预设级别阈值的进程。

8.根据权利要求6所述的装置,其特征在于,所述回收单元,具体用于:依据所需释放的内存空间量以及每个内存泄漏级别大于所述第一预设级别阈值的进程的实际使用物理内存,关闭部分或全部内存泄漏级别大于所述第一预设级别阈值的进程,其中,关闭的所有进程的实际使用物理内存之和大于或等于所述所需释放的内存空间量。

9.根据权利要求6所述的装置,其特征在于,所述回收单元,还用于:在确定系统处于空闲状态的条件下,关闭内存泄漏级别大于第二预设级别阈值的进程,其中,所述第一预设级别阈值高于所述第二预设级别阈值。

10.根据权利要求6-9中任一项所述的装置,其特征在于,所述获取单元,具体用于:在所述系统可分配物理内存空间小于预设空间阈值的条件下,获取所述系统中处于运行状态的每个进程的进程标识和实际使用物理内存。

11.一种内存回收设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-5中任一项所述的方法。

12.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-5中任一项所述的方法。

说明书 :

一种内存回收方法、装置、设备及介质

技术领域

[0001] 本发明涉及内存管理技术领域,尤其是涉及一种内存回收方法、装置、设备及介质。

背景技术

[0002] 目前,越来越多的车载中控系统使用安卓(android)系统,实际应用中,车载中控系统为了能即时响应各种控制操作(例如,远程控制),即使非驾驶状态下一般也不会关机。
[0003] 由于android系统内存管理的缺陷,若android系统长时间处于运行状态,其内存泄漏问题将很难得到修复。现有技术中存在一些内存泄漏的检测方法,此类方法通常在内存泄漏检测时,涉及复杂的计算和逻辑处理,给系统带来额外的开销。
[0004] 因此,目前亟需一种内存回收方法,以解决系统长时间处于运行状态所导致的内存泄漏问题。

发明内容

[0005] 本发明实施例提供一种内存回收方法、装置、设备及介质,用于解决系统长时间处于运行状态所导致的内存泄漏问题。
[0006] 第一方面,本发明实施例提供了一种内存回收方法,包括:
[0007] 获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存;
[0008] 基于预先配置的内存泄漏级别表,根据获取到的每个进程的实际使用物理内存,确定每个进程的内存泄漏级别,内存泄漏级别表中包括进程标识、内存泄漏阈值以及内存泄漏级别之间的对应关系;
[0009] 关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。
[0010] 在一种可能的实施方式中,本发明实施例提供的上述方法中,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,包括:
[0011] 获取系统中处于运行状态的每个进程的运行优先级;
[0012] 在运行优先级高于预设优先级阈值的进程中,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。
[0013] 在一种可能的实施方式中,本发明实施例提供的上述方法中,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,包括:
[0014] 依据所需释放的内存空间量以及每个内存泄漏级别大于第一预设级别阈值的进程的实际使用物理内存,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,其中,关闭的所有进程的实际使用物理内存之和大于或等于所需释放的内存空间量。
[0015] 在一种可能的实施方式中,本发明实施例提供的上述方法中,方法还包括:
[0016] 在确定系统处于空闲状态的条件下,关闭内存泄漏级别大于第二预设级别阈值的进程,其中,第一预设级别阈值高于第二预设级别阈值。
[0017] 在一种可能的实施方式中,本发明实施例提供的上述方法中,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存,包括:
[0018] 在系统可分配物理内存空间小于预设空间阈值的条件下,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存。
[0019] 第二方面,本发明实施例提供一种内存回收装置,包括:
[0020] 获取单元,用于获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存;
[0021] 处理单元,用于基于预先配置的内存泄漏级别表,根据获取到的每个进程的实际使用物理内存,确定每个进程的内存泄漏级别,内存泄漏级别表中包括进程标识、内存泄漏阈值以及内存泄漏级别之间的对应关系;
[0022] 回收单元,用于关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。
[0023] 在一种可能的实施方式中,本发明实施例提供的上述装置中,回收单元,具体用于:
[0024] 获取系统中处于运行状态的每个进程的运行优先级;
[0025] 在运行优先级高于预设优先级阈值的进程中,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。
[0026] 在一种可能的实施方式中,本发明实施例提供的上述装置中,回收单元,具体用于:
[0027] 依据所需释放的内存空间量以及每个内存泄漏级别大于第一预设级别阈值的进程的实际使用物理内存,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,其中,关闭的所有进程的实际使用物理内存之和大于或等于所需释放的内存空间量。
[0028] 在一种可能的实施方式中,本发明实施例提供的上述装置中,回收单元,还用于:
[0029] 在确定系统处于空闲状态的条件下,关闭内存泄漏级别大于第二预设级别阈值的进程,其中,第一预设级别阈值高于第二预设级别阈值。
[0030] 在一种可能的实施方式中,本发明实施例提供的上述装置中,获取单元,具体用于:
[0031] 在系统可分配物理内存空间小于预设空间阈值的条件下,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存。
[0032] 第三方面,本发明实施例提供了一种内存回收设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现本发明实施例第一方面提供的方法。
[0033] 第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现本发明实施例第一方面提供的方法。
[0034] 本发明实施例提供的一种内存回收方法、装置、设备及介质,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存,基于预先配置的内存泄漏级别表,根据获取到的每个进程的实际使用物理内存,确定每个进程的内存泄漏级别,通过关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,以释放部分内存泄漏的进程所占用的物理内存,回收系统内存空间,从而解决系统长时间处于运行状态所导致的内存泄漏问题。

附图说明

[0035] 图1本发明实施例提供的内存回收方法的示意流程图;
[0036] 图2为本发明实施例提供的内存回收方法的具体流程的示意流程图;
[0037] 图3为本发明实施例提供的内存回收装置的结构示意图;
[0038] 图4为本发明实施例提供的内存回收设备的结构示意图。

具体实施方式

[0039] 下面结合附图,对本发明实施例提供的一种内存回收方法、装置、设备及介质的具体实施方式进行详细地说明。
[0040] 需要说明的是,本发明实施例提供的内存回收方案,不仅适用于车载中控系统中使用的android系统,还适用于其它长期处于运行状态的android系统或其它存在内存泄漏的操作系统。
[0041] 如图1所示,本发明实施例提供的内存回收方法,其可以包括如下步骤:
[0042] 步骤101,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存。
[0043] 其中,进程标识用于唯一标识每个进程,不同进程的进程标识不同。具体实施时,进程标识可以是每个进程的进程标识符,也可以是每个进程的进程名称,还可以是每个进程多个属性特征的组合,例如,进程标识可以是每个进程的进程标识符与进程名称的组合,本发明实施例对此不做限定。
[0044] 在一个可能的实施方式中,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存时,可以在系统可分配物理内存空间小于预设空间阈值的条件下,触发获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存,以降低系统运算量以及降低对用户的影响。其中,预设空间阈值可以根据系统内存空间的大小进行灵活设定,例如,预设空间阈值设置为500兆(MB)。
[0045] 在另一种可能的实施方式中,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存时,可以在系统运行过程中周期性遍历处于运行状态的每个进程,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存,以为后续分析内存泄漏的原因提供数据支持。其中,遍历的周期可以根据经验灵活性设置,例如:周期为60分钟。
[0046] 需要说明的是,在系统运行过程中周期性遍历处于运行状态的每个进程,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存时,若系统可分配物理内存空间小于预设空间阈值,触发需要获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存时,可以使用周期性获取结果中最近一次的获取结果作为获取到的系统中处于运行状态的每个进程的进程标识和实际使用物理内存。当然,在系统可分配物理内存空间小于预设空间阈值,触发需要获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存时,也可以重新进行获取,也即实时获取,以提高准确性。
[0047] 具体实施时,获取系统中处于运行状态的每个进程的进程标识时,可以直接或间接从进程的属性信息中获取。具体来说,在使用进程属性信息中的单个属性信息作为进程标识时,例如,使用进程名称或者进程标识符作为进程标识时,可以直接从每个进程的属性信息中获取进程标识;在使用进程属性信息中多个属性信息的组合作为进程标识时,例如,使用进程名称和进程标识符的组合作为进程标识时,可以间接从每个进程的属性信息中获取进程标识。
[0048] 具体实施时,获取系统中处于运行状态的每个进程的实际使用物理内存时,可以启动一个线程或者工作队列,通过get_mm_rss内核函数获取每个进程的实际使用物理内存。当然,在本发明其它实施例中,也可以通过其它方式获取,此处并不用于具体限定。
[0049] 步骤102,基于预先配置的内存泄漏级别表,根据获取到的每个进程的实际使用物理内存,确定每个进程的内存泄漏级别,内存泄漏级别表中包括进程标识、内存泄漏阈值以及内存泄漏级别之间的对应关系。
[0050] 需要说明的是,预先配置的内存泄漏级别表中,包括进程标识、内存泄漏阈值以及内存泄漏级别三者之间的对应关系。其中,内存泄漏阈值是指进程实际使用物理内存的阈值。
[0051] 在内存泄漏级别表中,由于不同进程使用的物理内存不尽相同,因此,不同的进程可以配置不同的内存泄漏阈值。为了判断进程内存泄漏的严重程度,还可以对每个进程设置一个或多个内存泄漏阈值,不同的内存泄漏阈值对应不同的内存泄漏级别。
[0052] 其中,内存泄漏阈值与内存泄漏级别的对应关系,可以根据经验值设定。举例来说,若内存泄漏级别从低到高依次为1级、2级、3级,则可以设置100M的内存泄漏阈值对应的内存泄漏级别为1级;300M的内存泄漏阈值对应的内存泄漏级别为2级;500M的内存泄漏阈值对应的内存泄漏级别为3级。
[0053] 具体实施时,步骤101中已获取到系统中处于运行状态的每个进程的进程标识和实际使用物理内存,因此,基于预先配置的内存泄漏级别表、步骤101中获取到的每个进程的进程标识和实际使用物理内存,可以确定出处于运行状态的每个进程的内存泄漏级别。
[0054] 需要说明的是,若某个处于运行状态的进程,在内存泄漏级别表中无该进程的内存泄漏阈值及内存泄漏级别的配置,则可以采用系统默认值进行确定,也可以忽略该进程,本发明实施例对此不做限定。
[0055] 步骤103,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。
[0056] 具体实施时,在步骤102中确定每个进程的内存泄漏级别后,可以关闭部分或者全部内存泄漏级别大于第一预设级别阈值的进程,以回收系统物理内存。其中,第一预设级别阈值,可以根据经验值设定。例如,内存泄漏级别从低到高划分为1~10级时,第一预设级别阈值可以设置为8级。
[0057] 在一种可能的实施方式中,在关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程时,为了尽量降低对用户正常使用的影响,可以获取系统中处于运行状态的每个进程的运行优先级,并在运行优先级高于预设优先级阈值的进程中,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。其中,预设优先级阈值可以根据经验值设定。
[0058] 具体实施时,若系统为android系统,在关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程时,可以和android系统原生的low memory killer机制相结合,在运行优先级高于预设优先级阈值的进程中,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。
[0059] 在另一种可能的实施方式中,在关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程时,为了尽量降低对用户正常使用的影响,可以依据所需释放的内存空间量以及每个内存泄漏级别大于第一预设级别阈值的进程的实际使用物理内存,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,其中,关闭的所有进程的实际使用物理内存之和大于或等于所需释放的内存空间量。
[0060] 需要说明的是,关闭每个内存泄漏的进程所释放的内存空间即为该进程的实际使用物理内存。
[0061] 在一种可能的实施方式中,提高内存回收量,还可以在确定系统处于空闲状态的条件下,关闭内存泄漏级别大于第二预设级别阈值的进程,其中,第一预设级别阈值高于第二预设级别阈值。
[0062] 其中,系统处于空闲状态可以采用多种方式进行确定,本发明对此不做限定。例如,在系统屏幕处于熄灭状态且未进入休眠模式时,确定系统处于空闲状态;再例如,在系统长时间未接收到来自于用户的操作指令时,确定系统处于空闲状态。
[0063] 具体实施时,在确定系统处于空闲状态的条件下,关闭内存泄漏级别大于第二预设级别阈值的进程,其中,第二预设级别阈值可以是内存泄漏级别中的一个,以关闭内存泄漏级别大于第二预设级别阈值的进程;也可以是小于最低内存泄漏级别的一个值,以关闭所有内存泄漏的进程。
[0064] 实际应用中,本发明实施例提供的内存回收方案,在关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程时,不但能够回收系统的内存空间,而且能够在一定程度上解决系统的内存碎片化问题,保证系统的健康运行。
[0065] 下面结合图2对本发明实施例提供的内存回收方法进行详细说明。
[0066] 如图2所示,本发明实施例提供的内存回收方法,其具体步骤可以包括:
[0067] 步骤201,获取系统可分配物理内存空间。其中,系统可分配物理内存空间也即系统中未使用的物理内存空间。
[0068] 步骤202,判断系统可分配物理内存空间是否小于预设空间阈值,若是,则执行步骤203,否则,继续执行步骤201获取系统可分配物理内存空间。
[0069] 步骤203,在确定系统可分配物理内存空间小于预设空间阈值时,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存。
[0070] 具体实施时,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存时,可以实时进行获取。若系统周期性获取处于运行状态的每个进程的进程标识和实际使用物理内存,则也可以不再重新获取,而使用上一个周期的获取结果。
[0071] 步骤204,基于预先配置的内存泄漏级别表,确定每个进程的内存泄漏级别。其中,内存泄漏级别表中包括进程标识、内存泄漏阈值以及内存泄漏级别之间的对应关系。
[0072] 步骤205,获取系统中处于运行状态的进程的运行优先级。
[0073] 需要说明的是,由于系统中进程的运行优先级变化较为频繁,故进程的运行优先级需要实时的进行获取,也即获取系统中处于运行状态的进程当前时刻的运行优先级。
[0074] 步骤206,在运行优先级高于预设优先级阈值的进程中,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。其中,预设优先级阈值和第一预设级别阈值均可以根据经验值设定。
[0075] 步骤207,判断系统是否处于空闲状态,若是,则执行步骤208,否则执行继续执行步骤207判断系统是否处于空闲状态。
[0076] 步骤208,在确定系统处于空闲状态时,关闭内存泄漏级别大于第二预设级别阈值的进程。其中,第二预设级别阈值低于第一预设级别阈值。
[0077] 实际应用中,第二预设级别阈值可以是内存泄漏级别中的一个,以关闭内存泄漏级别大于第二预设级别阈值的进程;也可以是小于最低内存泄漏级别的一个值,以关闭所有内存泄漏的进程。
[0078] 基于相同的发明构思,本发明实施例还提供一种内存回收装置。
[0079] 如图3所示,本发明实施例提供的内存回收装置,包括:
[0080] 获取单元301,用于获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存。
[0081] 处理单元302,用于基于预先配置的内存泄漏级别表,根据获取到的每个进程的实际使用物理内存,确定每个进程的内存泄漏级别,内存泄漏级别表中包括进程标识、内存泄漏阈值以及内存泄漏级别之间的对应关系。
[0082] 回收单元303,用于关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。
[0083] 本发明实施例提供的内存回收装置,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存,基于预先配置的内存泄漏级别表,根据获取到的每个进程的实际使用物理内存,确定每个进程的内存泄漏级别,通过关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,以释放部分内存泄漏的进程所占用的物理内存,回收系统内存空间,从而解决系统长时间处于运行状态所导致的内存泄漏问题。
[0084] 在一种可能的实施方式中,回收单元303,具体用于:获取系统中处于运行状态的每个进程的运行优先级;在运行优先级高于预设优先级阈值的进程中,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程。
[0085] 在一种可能的实施方式中,回收单元303,具体用于:依据所需释放的内存空间量以及每个内存泄漏级别大于第一预设级别阈值的进程的实际使用物理内存,关闭部分或全部内存泄漏级别大于第一预设级别阈值的进程,其中,关闭的所有进程的实际使用物理内存之和大于或等于所需释放的内存空间量。
[0086] 在一种可能的实施方式中,回收单元303,还用于:在确定系统处于空闲状态的条件下,关闭内存泄漏级别大于第二预设级别阈值的进程,其中,第一预设级别阈值高于第二预设级别阈值。
[0087] 在一种可能的实施方式中,获取单元301,具体用于:在系统可分配物理内存空间小于预设空间阈值的条件下,获取系统中处于运行状态的每个进程的进程标识和实际使用物理内存。
[0088] 另外,结合图1-图3描述的本发明实施例的内存回收方法和装置可以由内存回收设备来实现。图4示出了本发明实施例提供的内存回收设备的硬件结构示意图。
[0089] 内存回收设备可以包括处理器401以及存储有计算机程序指令的存储器402。
[0090] 具体地,上述处理器401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
[0091] 存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在数据处理装置的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。在特定实施例中,存储器402包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
[0092] 处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种内存回收方法。
[0093] 在一个示例中,内存回收设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
[0094] 通信接口403,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
[0095] 总线410包括硬件、软件或两者,将内存回收设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
[0096] 该内存回收设备可以基于获取到的系统中处于运行状态的每个进程的进程标识和实际使用物理内存,执行本发明实施例中的内存回收方法,从而实现结合图1-图3描述的内存回收方法和装置。
[0097] 另外,结合上述实施例中的内存回收方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种内存回收方法。
[0098] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0099] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0100] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0101] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0102] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。