内存的清理方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种内存的清理方法及装置。
【背景技术】
[0002]内存清理对保持移动终端稳定流畅地运行具有重要意义。相关技术中提到的内存清理算法通常是基于优先级和最近最久未使用(LRU)来实现的,其主要思想在于:当内存不足需要清理时,首先清理优先级低的进程空间,而在优先级别相同的情况下,可以按照LRU的次序进行清理(即最近使用的最后清理)。此种算法虽然简单、直接、高效,但是现代程序设计往往遵循组件化设计思想,即一个程序的运行需要依赖其它应用进程存在。因此,只是按照进程优先级和LRU算法来决定如何清理内存,就可能会出现将当前应用在运行过程中需要使用的应用内存也一并清理完成的情况发生,从而导致需要重新将已经清理掉的内存再换进来。
[0003]由此可见,相关技术中所提供的内存清理方式忽视了应用进程之间的内存依赖关系。
【发明内容】
[0004]本发明提供了一种内存的清理方法及装置,以至少解决相关技术中所提供的内存清理方式没有考虑应用进程之间的依赖性的问题。
[0005]根据本发明的一个方面,提供了一种内存的清理方法。
[0006]根据本发明实施例的内存的清理方法包括:获取第一应用进程在多次运行过程中同时运行的多个应用进程;从多个应用进程中选取部分应用进程,其中,部分应用进程是根据多个应用进程中每个应用进程在多次运行过程中的运行概率确定的;对与部分应用进程对应的第一内存页集合进行清理。
[0007]优选地,从多个应用进程中选取部分应用进程包括:获取第一应用进程的在多次运行过程中的第一运行次数;获取每个应用进程在多次运行过程中的第二运行次数;通过第二运行次数与第一运行次数的比值计算运行概率;按照运行概率由低到高的次序选取部分应用进程。
[0008]优选地,在从多个应用进程中选取部分应用进程之前,还包括:在多次运行过程中获取未包含在多个应用进程中的其他应用进程对应的第二内存页集合;对获取到的第二内存页集合进行清理。
[0009]优选地,对与部分应用进程对应的第一内存页集合进行清理包括:获取待清理的第三内存页集合,其中,第三内存页集合包含第一内存页集合且第三内存页集合与第二内存页集合互为补集;根据部分应用进程从第三内存页集合中选取第一内存页集合进行清理,其中,在每次清理过程中采用LRU算法从第一内存页集合中选取一个内存页作为清理对象。
[0010]优选地,在对与部分应用进程对应的第一内存页集合进行清理之后,还包括:判断在从第三内存页集合中清理出第一内存页集合后得到的内存空间是否满足预设条件;如果否,则需要在从多个应用进程中屏蔽掉部分应用进程后,继续从剩余的应用进程中反复按照运行概率由低到高的次序选取一个或多个应用进程,直至满足预设条件;对再次选取出的一个或多个应用进程对应的第四内存页集合进行清理。
[0011]根据本发明的另一方面,提供了一种内存的清理装置。
[0012]根据本发明实施例的内存的清理装置包括:第一获取模块,用于获取第一应用进程在多次运行过程中同时运行的多个应用进程;第一选取模块,用于从多个应用进程中选取部分应用进程,其中,部分应用进程是根据多个应用进程中每个应用进程在多次运行过程中的运行概率确定的;第一清理模块,用于对与部分应用进程对应的第一内存页集合进行清理。
[0013]优选地,第一选取模块包括:第一获取单元,用于获取第一应用进程的在多次运行过程中的第一运行次数;第二获取单元,用于获取每个应用进程在多次运行过程中的第二运行次数;计算单元,用于通过第二运行次数与第一运行次数的比值计算运行概率;选取单元,用于按照运行概率由低到高的次序选取部分应用进程。
[0014]优选地,上述装置还包括:第二获取模块,用于在多次运行过程中获取未包含在多个应用进程中的其他应用进程对应的第二内存页集合;第二清理模块,用于对获取到的第二内存页集合进行清理。
[0015]优选地,第一清理模块包括:第三获取单元,用于获取待清理的第三内存页集合,其中,第三内存页集合包含第一内存页集合且第三内存页集合与第二内存页集合互为补集;清理单元,用于根据部分应用进程从第三内存页集合中选取第一内存页集合进行清理,其中,在每次清理过程中采用LRU算法从第一内存页集合中选取一个内存页作为清理对象。
[0016]优选地,上述装置还包括:判断模块,用于判断在从第三内存页集合中清理出第一内存页集合后得到的内存空间是否满足预设条件;第二选取模块,用于在判断模块输出为否时,则需要在从多个应用进程中屏蔽掉部分应用进程后,继续从剩余的应用进程中反复按照运行概率由低到高的次序选取一个或多个应用进程,直至满足预设条件;第三清理模块,用于对再次选取出的一个或多个应用进程对应的第四内存页集合进行清理。
[0017]通过本发明实施例,采用获取第一应用进程在多次运行过程中同时运行的多个应用进程;从多个应用进程中选取部分应用进程,其中,部分应用进程是根据多个应用进程中每个应用进程在多次运行过程中的运行概率确定的;对与部分应用进程对应的第一内存页集合进行清理,解决了相关技术中所提供的内存清理方式没有考虑应用进程之间的依赖性的问题,进而加强了内存清理的有效性,提升了系统的反应速度。
【附图说明】
[0018]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019]图1是根据本发明实施例的内存的清理方法的流程图;
[0020]图2是根据本发明优选实施例的内存清理过程的流程图;
[0021]图3是根据本发明优选实施例的统计数据结构的示意图;
[0022]图4是根据本发明实施例的内存的清理装置的结构框图;
[0023]图5是根据本发明优选实施例的内存的清理装置的结构框图。
【具体实施方式】
[0024]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0025]图1是根据本发明实施例的内存的清理方法的流程图。如图1所示,该方法可以包括以下处理步骤:
[0026]步骤S102:获取第一应用进程在多次运行过程中同时运行的多个应用进程;
[0027]步骤S104:从多个应用进程中选取部分应用进程,其中,部分应用进程是根据多个应用进程中每个应用进程在多次运行过程中的运行概率确定的;
[0028]步骤S106:对与部分应用进程对应的第一内存页集合进行清理。
[0029]相关技术中所提供的内存清理方式没有考虑应用进程之间的依赖性。采用如图1所示的方法,通过其他应用进程在第一应用进程的多次运行过程中的运行概率确定第一应用进程与其他各个应用进程之间的依赖关系,进而能够根据依赖关系选取部分应用进程对应的内存页加以清理。由此解决了相关技术中所提供的内存清理方式没有考虑应用进程之间的依赖性的问题,进而加强了内存清理的有效性,提升了系统的反应速度。
[003