一种缓存回收方法和装置的制造方法

文档序号:9672987阅读:294来源:国知局
一种缓存回收方法和装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种缓存回收方法和缓存回收装置。
【背景技术】
[0002]随着安卓(Android)操作系统的普及,在Android系统上可运行的应用程序也越来越丰富,许多应用程序为了提升运行效率和流畅性,在其安装并运行时,将应用程序的用户数据、临时文件以及音频、视频等资源作为缓存文件存储在Android设备的内存中,随着越来越多的应用被使用,缓存文件越来越多,就会导致内存空间不足。
[0003]针对内存空间不足的问题,现有技术中存在两种内存回收方法,一种是在进程申请内存的过程中,发现需求的内存空间不足时,发起内存页的回收动作,其回收的依据是通过内存页的活动性来判断的,即越不活动的内存页越容易被回收;另一种内存回收方法是Android系统按照优先级清除进程的方式进行内存回收,优先级越高的进程越容易被清除,后台进程的优先级高,前台进程的优先级低。这两种内存回收方式都集成在了 Android系统的回收策略中,在Android系统运行过程中,一旦出现内存空间不足,就进行这两种内存回收方式。
[0004]但是,发明人发现,当前台活动的进程使用内存空间较多时,不活动的内存页相对较少,此时如果采用第一种回收方式,效果很差,然而如果采用第二种方式直接将一些进程清除掉,自然就能将这些进程占用的所有内存释放掉,但是随着系统运行的应用越来越多,内存空间的使用越来越大,越容易出现内存空间不足的情况,这样,在系统物理内存总量较少,而同时打开的程序又比较多的情况下,采用第二种方式会比较容易地将前台进程也清除,即将用户当前正在使用的应用关闭,严重影响用户体验。

【发明内容】

[0005]本申请实施例通过提供一种缓存回收方法,在不影响用户体验的同时,实现了内存的有效回收。
[0006]相应的,本申请实施例还提供了一种缓存回收装置,用以保证上述缓存回收方法的实现及应用。
[0007]本发明实施例采用一种缓存回收方法,所述方法包括:接收进程发送的申请内存的请求信息,其中,所述请求信息携带有所述进程所需内存空间的大小;根据所述进程所需内存空间的大小,判断当前空闲的内存空间是否满足所述进程所需内存空间;若否,则扫描进程表,并清除所述进程表中的后台进程;判断清除后台进程之后的空闲内存空间是否满足所述进程所需内存空间;若否,则判断是否存在缓存页回收标记;若不存在所述缓存页回收标记,则回收缓存页,设置缓存页回收标记,并判断回收缓存页之后的空闲内存空间是否满足所述进程所需内存空间,若存在所述缓存页回收标记,则清除所述进程表中的前台进程。
[0008]本申请实施例提供的缓存回收方法中,当有进程申请内存空间,但是当前空闲的内存空间不满足该进程所述进程所需内存空间时,执行扫描进程表的操作,通过扫描进程表,执行清除后台进程的操作,当把所有的后台进程都清除后,判断当前空闲的内存空间是否满足所述进程所需内存空间,当此时的空闲内存空间仍不满足所述进程所需内存空间时,查询是否存在缓存页回收标记,判断是否已经进行了缓存页的回收,如果还没有对缓存页进行回收,则回收缓存页,如果已经进行过回收缓存页的操作,则清除进程表中的前台进程。本方案将回收缓存页的动作加入到了整个Android系统的内存回收策略中,提高了Android系统内存回收的效率,而且,由于在清除后台进程后,增加了缓存页的回收,降低了前台进程被清除的频率,从而,降低了将用户当前使用的应用程序强制关闭的频率,在一定程度上提高了用户体验。
[0009]基于同样的发明构思,本申请实施例还提供了一种缓存回收装置,该缓存回收装置包括:接收单元,用于接收进程发送的申请内存的请求信息,其中,所述请求信息携带有所述进程所需内存空间的大小,并将所述进程所需内存空间的大小发送给判断单元;判断单元,用于根据从所述接收单元获取到的所述进程所需内存空间的大小,判断当前空闲的内存空间是否满足所述进程所需内存空间,并将判断结果发送给进程处理单元;进程处理单元,用于若接收到的判断结果为否,则扫描进程表,并清除所述进程表中的后台进程,并判断清除后台进程之后的空闲内存空间是否满足所述进程所需内存空间,并将判断结果发送给缓存页处理单元;缓存页处理单元,用于若接收到的进程处理单元发送的判断结果为否,则判断是否存在缓存页回收标记,若不存在所述缓存页回收标记,则回收缓存页,设置缓存页回收标记,并判断回收缓存页之后的空闲内存空间是否满足所述进程所需内存空间,若存在所述缓存页回收标记,则将存在所述缓存页回收标记的通知发送给所述进程处理单元,由所述进程处理单元清除所述进程表中的前台进程。
[0010]本申请实施例提供的缓存回收装置中,当接收单元接收到进程申请内存空间的请求信息,但是当前空闲的内存空间不满足该进程所述进程所需内存空间时,执行扫描进程表的操作,通过进程处理单元扫描进程表,执行清除后台进程的操作,当把所有的后台进程都清除后,判断当前空闲的内存空间是否满足所述进程所需内存空间,当此时的空闲内存空间仍不满足所述进程所需内存空间时,再通过缓存页处理单元查询是否存在缓存页回收标记,判断是否已经进行了缓存页的回收,如果还没有对缓存页进行回收,则回收缓存页,如果已经进行过回收缓存页的操作,则清除进程表中的前台进程。本方案将回收缓存页的动作加入到了整个Android系统的内存回收策略中,提高了 Android系统内存回收的效率,而且,由于在清除后台进程后,增加了缓存页的回收,降低了前台进程被清除的频率,从而,降低了将用户当前使用的应用程序强制关闭的频率,在一定程度上提高了用户体验。
【附图说明】
[0011]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0012]图1为本申请实施例提供的一种缓存回收方法的步骤流程示意图;
图2为本申请另一实施例提供的一种缓存回收方法的步骤流程示意图; 图3为本申请实施例中清除后台进程的步骤流程示意图;
图4为本申请实施例提供的一种缓存回收装置的结构示意图。
【具体实施方式】
[0013]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0014]以下通过具体的实施例,结合说明书附图对本发明的技术方案进行详细描述,本发明包括但并不限于以下实施例。
[0015]如图1所示,本申请实施例提供的一种缓存回收方法包括:
步骤101:接收进程发送的申请内存的请求信息,其中,所述请求信息携带有所述进程所需内存空间的大小。
[0016]以Android系统为例,现有技术中,基于Android系统的终端应用越来越丰富,这些应用程序的运行离不开执行程序的活动,也就是进程,这些进程由Android操作系统内核中的调度程序来管理,该调度程序负责维护一个有关计算机系统中现存进程的记录(也就是进程池),将新的进程加入到该进程池中,并把已经完成的进程移出进程池,这样,当用户请求执行一个应用时,调度程序就把这个应用加到当前进程池加以执行。而进程执行程序的过程中,会申请一些存储区以存放执行程序所需要的文件,本步骤中,当用户执行一个应用时,调度程序把用户请求执行的这个应用加到当前进程池中,执行该应用的进程就会向操作系统申请一定的内存空间,当操作系统的内核接收到进程发送的申请内存的请求信息时,获取该请求信息中包含的所申请内存空间的大小。
[0017]步骤102:根据所述进程所需内存空间的大小,判断当前空闲的内存空间是否满足所述进程所需内存空间。
[0018]本步骤中,根据通过步骤101获取到的所需内存空间的大小,由操作系统的内核获取当前的空闲内存空间大小,并将获取到的当前内存空间的大小与获取到的所需内存空间大小进行比较,以判断当前空闲的内存空间是否满足所需内存空间。
[0019]步骤103:若当前空闲的内存空间不满足所述进程所需内存空间,则扫描进程表,并清除所述进程表中的后台进程。
[0020]本申请实施例中,如果当前空闲的内存空间不能满足申请内存的进程所需的内存空间时,采用清除后台进程的方式释放一部分内存空间。
[0021]优选地,如图
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1