内存清理方法、装置、存储介质及电子设备与流程

文档序号:26050346发布日期:2021-07-27 15:25阅读:96来源:国知局
内存清理方法、装置、存储介质及电子设备与流程

本申请涉及内存清理技术领域,具体涉及一种内存清理方法、装置、存储介质及电子设备。



背景技术:

目前,随着如智能手机、平板电脑等电子设备的普及,各种电子设备上的应用层出不穷,比如提供网页浏览功能的浏览器类应用,提供游玩功能的游戏类应用等。

这些应用在丰富电子设备功能的同时,也占用了电子设备的大量内存空间,导致电子设备的运行速度越来越慢。为了节省电子设备的内存空间,提高电子设备的运行速度,需要对电子设备进行内存清理操作,也即是结束某些不必要运行的应用。

相关技术在对电子设备进行内存清理操作时,通常是设定一个内存清理阈值,并在电子设备的可用内存空间容量小于该内存清理阈值时触发进行内存清理操作,然而,这种内存清理方式的有效性较差。



技术实现要素:

本申请提供了一种内存清理方法、装置、存储介质及电子设备,能够提高电子设备进行内存清理操作的有效性。

第一方面,本申请提供一种内存清理方法,应用于电子设备,包括:

在所述电子设备的可用内存空间容量大于或等于内存清理阈值时,获取可用内存空间容量的第一变化趋势;

获取前台进程占用内存空间容量的第二变化趋势;

根据所述第一变化趋势和所述第二变化趋势,确定针对所述电子设备的内存清理策略;以及

根据所述内存清理策略,控制电子设备进行或不进行内存清理操作。

第二方面,本申请提供一种内存清理装置,应用于电子设备,包括:

第一获取模块,用于在所述电子设备的可用内存空间容量大于或等于内存清理阈值时,获取可用内存空间容量的第一变化趋势;

第二获取模块,用于获取前台进程占用内存空间容量的第二变化趋势;

策略确定模块,用于根据所述第一变化趋势和所述第二变化趋势,确定针对所述电子设备的内存清理策略;以及

内存清理模块,用于根据所述内存清理策略,控制电子设备进行或不进行内存清理操作。

第三方面,本申请提供了一种存储介质,其上存储有计算机程序,当所述计算机程序被电子设备的处理器加载时执行如本申请提供的任一内存清理方法。

第四方面,本申请还提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器储存有计算机程序,所述处理器通过加载所述计算机程序执行如本申请提供的任一内存清理方法。

相较于相关技术在电子设备的可用内存空间容量小于内存清理阈值时才进行内存清理操作,本申请在电子设备的可用内存空间容量小于内存清理阈值前就提前进行了内存清理,能够有效地对电子设备的内存进行清理。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的内存清理方法的一流程示意图。

图2是本申请实施例中电子设备的内存占用情况示意图。

图3是本申请实施例中采样得到的多个可用内存空间采样容量的示例图。

图4是本申请实施例中根据多个可用内存空间采样容量拟合得到的可用内存空间容量变化曲线的示例图。

图5是本申请实施例中采样得到的多个占用内存空间采样容量的示例图。

图6是本申请实施例中根据多个占用内存空间采样容量拟合得到的占用内存空间容量变化曲线的示例图。

图7是本申请实施例中可用内存空间容量变化曲线和占用内存空间容量变化曲线的一对比示意图。

图8是本申请实施例中可用内存空间容量变化曲线和占用内存空间容量变化曲线的另一对比示意图。

图9是本申请实施例中可用内存空间容量变化曲线和占用内存空间容量变化曲线的又一对比示意图。

图10是本申请实施例提供的内存清理方法的另一流程示意图。

图11是本申请实施例提供的内存清理装置的结构示意图。

图12是本申请实施例提供的电子设备的结构示意图。

具体实施方式

应当说明的是,本申请中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本申请实施例提供一种内存清理方法、内存清理装置、存储介质及电子设备,其中内存清理方法的执行主体可以是本申请实施例提供的内存清理装置,或者集成了该内存清理装置的电子设备,其中该内存清理装置可以采用硬件或者软件的方式实现。其中,电子设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑等配置有处理器而具有数据处理能力的设备。

请参照图1,图1为本申请实施例提供的内存清理方法的流程示意图,如图1所示,本申请实施例提供的内存清理方法的流程可以如下:

在110中,在电子设备的可用内存空间容量大于或等于内存清理阈值时,获取可用内存空间容量的第一变化趋势。

目前的内存清理规则,会根据电子设备内存空间容量的大小,设置一个内存清理阈值,比如,对于内存空间容量为8gb的电子设备,可以设置内存清理阈值为1gb,以此,当该电子设备的可用内存空间容量小于1gb时,即触发进行内存清理操作,结束后台不必要运行的应用,从而确保可用内存空间容量大于或等于1gb。

虽然上述内存清理规则能够在应用启动时确保足够的可用内存空间容量,但是对于某些大型应用,进入应用时的占用空间容量和运行期间的峰值占用内存空间容量差距甚大,以某游戏应用为例,该游戏应用在启动游戏和游戏大厅场景,占用内存空间容量大约300~400mb,而在战斗场景,占用内存空间容量的峰值可达到900mb以上。在游戏应用的运行期间,后台应用也可能会不断申请内存,导致可用内存空间容量急速下降。而电子设备为了不影响前台进程的运行流畅性,在前台进程的运行期间不会执行内存清理规则,而前台进程占用内存的增加和后台应用占用内存的增加,将导致前台进程出现运行卡顿、掉帧等情况。比如,以电子设备采用安卓系统为例,当可用内存空间容量急速下降而触发低内存杀手(lowmemorykiller,lmk)时,低内存杀手会抢占处理器资源,批量结束应用,导致前台进程出现运行卡顿、掉帧等情况。

因此,本申请为了更有效地进行内存清理操作,在保留上述内存清理规则的基础上,提供了新的动态内存清理规则,该动态内存清理规则根据可用内存空间容量和前台进程占用内存空间容量的变化情况,动态判断是否需要进行内存清理操作。

以下实施例中以电子设备为执行主体对本申请提供的内存清理方法进行说明。

区别于相关技术,本申请实施例中,无论是否运行有前台进程,电子设备均实时侦测其可用内存空间容量,若侦测到可用内存空间容量小于内存清理阈值,则相应进行内存清理操作;若侦测到可用内存空间容量大于或等于内存清理阈值,进一步根据本申请提供的动态内存清理规则确定是否进行内存清理操作。此处对内存清理阈值的取值不作限制,具体可由本领域技术人员根据实际需要进行取经验值,比如,可由配置内存清理阈值为电子设备内存空间容量的20%。

本申请实施例中,当侦测到可用内存空间容量大于或等于内存清理阈值时,获取可用内存空间容量的变化趋势,记为第一变化趋势。其中,该第一变化趋势用于描述电子设备可用的内存空间容量的变化方向(比如增加或降低)以及变化量。

在120中,获取前台进程占用内存空间容量的第二变化趋势。

此外,电子设备除了获取可用内存空间容量的第一变化趋势之外,还获取前台进程占用内存空间容量的变化趋势,记为第二变化趋势。其中,该第二变化趋势用于描述前台进程占用的内存空间容量的变化方向(比如增加或降低)以及变化量。其中,前台进程可以是电子设备前台运行的任一应用的进程,包括但不限于游戏类应用、视频类应用、工具类应用、浏览器类应用、新闻类应用等等。

应当说明的是,以上110和120的执行先后顺序不受序号大小的影响,可以是110在120之前执行,也可以是120在110之前执行,还可以是110和120同时执行。

在130中,根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略。

可以理解的是,应用无论是在前台运行,还是在后台运行,只要运行均会占用电子设备的内存空间容量。比如,请参照图2,虽然电子设备的内存空间容量是固定的,但是可用内存空间容量和已占用内存空间容量是动态变化的,而前台进程的占用内存空间容量属于已占用内存空间容量的一部分,另一部分即后台应用的占用内存空间容量。

应当说明的是,可用内存空间容量的第一变化趋势和前台进程的占用内存空间容量的第二变化趋势存在一定的关联性。比如,假设除前台进程之外的其它应用的内存占用情况不变,当前台进程占用的内存空间容量增加时,电子设备的可用内存空间容量相应降低,而当前台进程占用的内存空间容量降低时,电子设备的可用内存空间容量相应增加。因此,在本申请实施例中,电子设备可根据可用内存空间容量的第一变化趋势和前台进程的占用内存空间容量的第二变化趋势来预测后续的内存占用情况,相应确定内存清理策略。

比如,当预测得到后续的内存占用情况为可用内存空间容量将小于内存清理阈值时,确定内存清理策略为进行内存清理操作,当预测得到后续的内存占用情况为可用内存空间容量将大于或等于内存清理阈值时,确定内存清理策略为不进行内存清理操作。

在140中,根据内存清理策略,控制电子设备进行或不进行内存清理操作。

电子设备在确定内存清理策略之后,即根据确定的内存清理策略,进行或不进行内存清理操作。

比如,在确定的内存清理策略为进行内存清理操作时,则电子设备相应进行内存清理操作,在确定的内存清理策略为不进行内存清理操作时,则电子设备相应不进行内存清理操作。

应当说明的是,本申请实施例中对于电子设备执行的内存清理操作不作具体限制,可由本领域技术人员根据实际需要进行配置。

如上,通过周期性的执行110-140,能够动态地对电子设备进行内存清理操作,提高电子设备进行内存清理操作的有效性。

由上可知,本申请中,通过在电子设备的可用内存空间容量大于或等于内存清理阈值时,获取可用内存空间容量的第一变化趋势,以及获取前台进程占用内存空间容量的第二变化趋势,并根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略;以及根据确定的内存清理策略,控制电子设备进行或不进行内存清理操作。以此,相较于相关技术在电子设备的可用内存空间容量小于内存清理阈值时才进行内存清理操作,本申请在电子设备的可用内存空间容量小于内存清理阈值前就提前进行了内存清理,能够有效地对电子设备的内存进行清理。

可选地,在一实施例中,获取可用内存空间容量的第一变化趋势之前,还包括:

在电子设备的可用内存空间容量大于或等于内存清理阈值时,判断前台进程是否为预设应用;

在前台进程为预设应用时,获取可用内存空间容量的第一变化趋势。

本申请实施例中,电子设备仅在运行前台进程为特定的应用时,提前进行内存清理操作,以确保这些特定应用的稳定运行。

其中,电子设备在侦测到可用内存空间容量大于或等于内存清理阈值时,并不立即获取可用内存空间容量的第一变化趋势,而是先判断运行的前台进程是否为预设应用,若运行的前台进程为预设应用,再获取可用内存空间容量的第一变化趋势。

应当说明说明的是,本申请实施例中对预设应用的类型以及数量的配置不作具体限制,可由电子设备进行缺省配置,比如将对内存需求严苛的游戏类应用配置为预设应用,还可由电子设备根据用户输入进行配置,比如,根据用户输入将一视频类应用配置为预设应用。

可选地,在一实施例中,获取可用内存空间容量的第一变化趋势,包括:

(1)按照预设采样频率,对电子设备在预设采样周期内的可用内存空间容量进行采样,得到多个可用内存空间采样容量;

(2)根据多个可用内存空间采样容量拟合得到电子设备的可用内存空间容量变化曲线;

(3)将可用内存空间容量变化曲线作为第一变化趋势。

本申请实施例进一步提供一可选地获取可用内存空间容量的第一变化趋势的获取方式。

其中,本申请实施例预先配置有对可用内存空间容量进行采样的采用频率,记为预设采样频率,此外,还预先配置有对可用内存空间容量进行采样的预设采样周期。

本申请实施例中,在获取可用内存空间容量的第一变化趋势时,电子设备首先按照预设采样频率,对电子设备在预设采样周期内的可用内存空间容量进行采样,相应得到多个可用内存空间采样容量;然后再根据采样得到的这多个可用内存空间采样容量,按照各自的采样时刻拟合得到一条曲线,记为电子设备的可用内存空间容量变化曲线,该可用内存空间容量变化曲线即反映了电子设备的可用内存空间容量的变化趋势。因此,电子设备直接将拟合得到的可用内存空间容量变化曲线作为可用内存空间容量的第一变化趋势。

根据以上描述,本领域技术人员可以理解的是,其中预设采样频率取值越大,采样得到的可用内存空间采样容量越多,拟合得到的可用内存空间容量变化曲线也就越准确。因此,本申请实施例中对预设采样频率的取值不作具体限制,可由本领域技术人员根据实际需要取经验值。此外,本申请实施例中对于预设采样周期的取值也不作具体限制,同样可由本领域技术人员根据实际需要取经验值。

示例性地,假设预设采样频率配置为1次/秒,预设采样周期为5秒,则电子设备将在5秒内对可用内存空间容量采样5次。请参照图3,假设第1秒采样得到的可用内存空间采样容量为1.4gb,第2秒采样得到的可用内存空间采样容量为1.64gb,第3秒采样得到的可用内存空间采样容量为1.8gb,第4秒采样得到的可用内存空间采样容量为1.84gb,第5秒采样得到的可用内存空间采样容量为1.87gb,则可拟合得到图4所示的可用内存空间容量变化曲线。

可选地,在一实施例中,获取前台进程占用内存空间容量的第二变化趋势,包括:

(1)按照预设采样频率,对前台进程在预设采样周期内的占用内存空间容量进行采样,得到多个占用内存空间采样容量;

(2)根据多个占用内存空间采样容量拟合得到前台进程的占用内存空间容量变化曲线;

(3)将占用内存空间容量变化曲线作为第二变化趋势。

本申请实施例进一步提供一可选地获取前台进程占用内存空间容量的第二变化趋势的获取方式。

其中,本申请实施例采用与以上实施例中获取可用内存空间容量的第一变化趋势的相同获取方式,对前台进程占用内存空间容量的第二变化趋势进行获取。

本申请实施例中,在获取前台进程占用内存空间容量的第二变化趋势时,电子设备首先按照预设采样频率,对前台进程在预设采样周期内的占用内存空间容量进行采样,相应得到多个占用内存空间采样容量;然后再根据采样得到的这多个占用内存空间采样容量,按照各自的采样时刻拟合得到一条曲线,记为前台进程的占用内存空间容量变化曲线,该占用内存空间容量变化曲线即反映了前台进程的占用内存空间容量的变化趋势。因此,电子设备直接将拟合得到的占用内存空间容量变化曲线作为前台进程占用内存空间容量的第二变化趋势。

示例性地,假设预设采样频率配置为1次/秒,预设采样周期为5秒,则电子设备将在5秒内对可用内存空间容量采样5次。请参照图5,假设第1秒采样得到的占用内存空间采样容量为0.95gb,第2秒采样得到的占用内存空间采样容量为0.9gb,第3秒采样得到的占用内存空间采样容量为0.81gb,第4秒采样得到的占用内存空间采样容量为0.7gb,第5秒采样得到的占用内存空间采样容量为0.4gb,则可拟合得到图6所示的占用内存空间容量变化曲线。

可选地,在一实施例中,根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略,包括:

在可用内存空间容量变化曲线的平均斜率为负,占用内存空间容量变化曲线的平均斜率为正,且可用内存空间容量变化曲线的平均斜率绝对值小于占用内存空间容量变化曲线的平均斜率绝对值时,确定内存清理策略为不进行内存清理操作。

本申请实施例提供一可选地根据第一变化趋势和第二变化趋势确定内存清理策略的确定方式。

其中,将可用内存空间容量变化曲线作为可用内存空间容量的第一变化趋势,以及将占用内存空间容量变化曲线作为前台进程占用内存空间容量的第二变化趋势。

在根据第一变化趋势和第二变化趋势确定针对电子设备的内存清理策略时,请参照图7,若可用内存空间容量变化曲线的平均斜率为负,说明此时可用内存空间容量在持续降低,若占用内存空间容量变化曲线的平均斜率为正,说明此时前台进程的占用内存空间容量在持续增加。此时,电子设备进一步比较可用内存空间容量变化曲线的平均斜率绝对值与占用内存空间容量变化曲线的平均斜率绝对值的大小。其中,若可用内存空间容量变化曲线的平均斜率绝对值小于占用内存空间容量变化曲线的平均斜率绝对值时,电子设备判定此时有前台进程之外的其它应用在主动释放内存,预测可用内存空间容量将大于或等于内存清理阈值,此时不应当触发清理,相应确定内存清理策略为不进行内存清理操作。

可选地,在一实施例中,根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略,包括:

在可用内存空间容量变化曲线的平均斜率为负,占用内存空间容量变化曲线的平均斜率为正,且可用内存空间容量变化曲线的平均斜率绝对值大于或等于占用内存空间容量变化曲线的平均斜率绝对值时,确定内存清理策略为进行内存清理操作。

本申请实施例提供另一可选地根据第一变化趋势和第二变化趋势确定内存清理策略的确定方式。

其中,将可用内存空间容量变化曲线作为可用内存空间容量的第一变化趋势,以及将占用内存空间容量变化曲线作为前台进程占用内存空间容量的第二变化趋势。

在根据第一变化趋势和第二变化趋势确定针对电子设备的内存清理策略时,请参照图8,若可用内存空间容量变化曲线的平均斜率为负,说明此时可用内存空间容量在持续降低,若占用内存空间容量变化曲线的平均斜率为正,说明此时前台进程的占用内存空间容量在持续增加。此时,电子设备进一步比较可用内存空间容量变化曲线的平均斜率绝对值与占用内存空间容量变化曲线的平均斜率绝对值的大小。其中,若可用内存空间容量变化曲线的平均斜率绝对值大于或等于占用内存空间容量变化曲线的平均斜率绝对值时,电子设备判定此时有前台进程之外的其它应用在增加内存占用,预测可用内存空间容量将小于内存清理阈值,此时应当触发清理,相应确定内存清理策略为进行内存清理操作。

可选地,在一实施例中,根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略,包括:

在可用内存空间容量变化曲线的平均斜率为负,且占用内存空间容量变化曲线的平均斜率为负时,确定内存清理策略为不进行内存清理操作。

本申请实施例提供又一可选地根据第一变化趋势和第二变化趋势确定内存清理策略的确定方式。

其中,将可用内存空间容量变化曲线作为可用内存空间容量的第一变化趋势,以及将占用内存空间容量变化曲线作为前台进程占用内存空间容量的第二变化趋势。

在根据第一变化趋势和第二变化趋势确定针对电子设备的内存清理策略时,请参照图9,若可用内存空间容量变化曲线的平均斜率为负,说明此时可用内存空间容量在持续降低,若占用内存空间容量变化曲线的平均斜率也为负,说明前台进程此时可能已退出高内存占用场景(比如,游戏类应用退出了对战),预测可用内存空间容量将大于或等于内存清理阈值,此时不应当触发清理,相应确定内存清理策略为不进行内存清理操作。

可选地,在一实施例中,根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略,包括:

在可用内存空间容量变化曲线的平均斜率为正,占用内存空间容量变化曲线的平均斜率为正或负时,确定内存清理策略为不进行内存清理操作。

可选地,在一实施例中,控制电子设备进行内存清理操作,包括:

(1)根据各后台进程的预分配优先级,确定需要结束的目标后台进程;

(2)结束目标后台进程,释放目标后台进程占用的内存空间容量。

本申请实施例进一步提供一可选地内存清理操作。

应当说明的是,本申请实施例中按照配置的优先级分配策略,预先为各进程分配有对应的优先级,记为预分配优先级。此处对于优先级分配策略的配置不作具体限制,可由本领域技术人员根据实际需要进行配置,可以配置优先级分配策略为动态的(比如,根据进程运行状态的不同,相应配置不同的优先级),也可以配置优先级分配策略为静态的。

本申请实施例中,在进行内存清理操作时,电子设备首先根据各后台进程的预分配优先级,确定出需要结束的目标后台进程,并结束确定出的目标后台进程,相应释放目标后台进程所占用的内存空间容量。

示例性地,电子设备按照预分配优先级的高低对各后台进程进行排序,确定出预分配优先级排序最低的预设个数(可由本领域技术人员根据实际需要取经验值)的后台进程,将这预设个数的后台进程确定为目标后台进程进行清理。

请参照图10,本申请提供的内存清理方法的流程还可以如下:

在210中,电子设备在可用内存空间容量大于或等于内存清理阈值时,按照预设采样频率,对预设采样周期内的可用内存空间容量进行采样,得到多个可用内存空间采样容量,以及对前台进程的占用内存空间容量进行采样,得到多个占用内存空间采样容量。

目前的内存清理规则,会根据电子设备内存空间容量的大小,设置一个内存清理阈值,比如,对于内存空间容量为8gb的电子设备,可以设置内存清理阈值为1gb,以此,当该电子设备的可用内存空间容量小于1gb时,即触发进行内存清理操作,结束后台不必要运行的应用,从而确保可用内存空间容量大于或等于1gb。

本申请为了更有效地进行内存清理操作,在保留上述内存清理规则的基础上,提供了新的动态内存清理规则,该动态内存清理规则根据可用内存空间容量和前台进程占用内存空间容量的变化情况,动态判断是否需要进行内存清理操作。

区别于相关技术,本申请实施例中,无论是否运行有前台进程,电子设备均实时侦测其可用内存空间容量,若侦测到可用内存空间容量小于内存清理阈值,则相应进行内存清理操作;若侦测到可用内存空间容量大于或等于内存清理阈值,进一步根据本申请提供的动态内存清理规则确定是否进行内存清理操作。此处对内存清理阈值的取值不作限制,具体可由本领域技术人员根据实际需要进行取经验值,比如,可由配置内存清理阈值为电子设备内存空间容量的20%。

其中,本申请实施例预先配置有对可用内存空间容量进行采样的采用频率,记为预设采样频率,此外,还预先配置有对可用内存空间容量进行采样的预设采样周期。

当侦测到可用内存空间容量大于或等于内存清理阈值时,按照预设采样频率,对预设采样周期内的可用内存空间容量进行采样,得到多个可用内存空间采样容量,以及对前台进程的占用内存空间容量进行采样,得到多个占用内存空间采样容量。

本申请实施例中对预设采样频率的取值不作具体限制,可由本领域技术人员根据实际需要取经验值。此外,本申请实施例中对于预设采样周期的取值也不作具体限制,同样可由本领域技术人员根据实际需要取经验值。

在220中,电子设备根据多个可用内存空间采样容量拟合得到可用内存空间容量变化曲线,以及根据多个占用内存空间采样容量拟合得到前台进程的占用内存空间容量变化曲线。

其中,电子设备根据采样得到的这多个可用内存空间采样容量,按照各自的采样时刻拟合得到一条曲线,记为电子设备的可用内存空间容量变化曲线,该可用内存空间容量变化曲线即反映了电子设备的可用内存空间容量的变化趋势。此外,电子设备还根据采样得到的这多个占用内存空间采样容量,按照各自的采样时刻拟合得到一条曲线,记为前台进程的占用内存空间容量变化曲线,该占用内存空间容量变化曲线即反映了前台进程的占用内存空间容量的变化趋势。

示例性地,假设预设采样频率配置为1次/秒,预设采样周期为5秒,则电子设备将在5秒内对可用内存空间容量采样5次。请参照图3,假设第1秒采样得到的可用内存空间采样容量为1.4gb,第2秒采样得到的可用内存空间采样容量为1.64gb,第3秒采样得到的可用内存空间采样容量为1.8gb,第4秒采样得到的可用内存空间采样容量为1.84gb,第5秒采样得到的可用内存空间采样容量为1.87gb,则可拟合得到图4所示的可用内存空间容量变化曲线。

请参照图5,假设第1秒采样得到的占用内存空间采样容量为0.95gb,第2秒采样得到的占用内存空间采样容量为0.9gb,第3秒采样得到的占用内存空间采样容量为0.81gb,第4秒采样得到的占用内存空间采样容量为0.7gb,第5秒采样得到的占用内存空间采样容量为0.4gb,则可拟合得到图6所示的占用内存空间容量变化曲线。

在230中,电子设备根据可用内存空间容量变化曲线和占用内存空间容量变化曲线确定内存清理策略。

可以理解的是,应用无论是在前台运行,还是在后台运行,只要运行均会占用电子设备的内存空间容量。比如,请参照图2,虽然电子设备的内存空间容量是固定的,但是可用内存空间容量和已占用内存空间容量是动态变化的,而前台进程的占用内存空间容量属于已占用内存空间容量的一部分,另一部分即后台应用占用的内存空间容量。

应当说明的是,可用内存空间容量的变化趋势和前台进程的占用内存空间容量的变化趋势存在一定的关联性。比如,假设除前台进程之外的其它应用的内存占用情况不变,当前台进程占用的内存空间容量增加时,电子设备的可用内存空间容量相应降低,而当前台进程占用的内存空间容量降低时,电子设备的可用内存空间容量相应增加。因此,在本申请实施例中,电子设备可根据可用内存空间容量的变化趋势和前台进程的占用内存空间容量的变化趋势来预测后续的内存占用情况,相应确定内存清理策略。

如上所述,可用内存空间容量变化曲线即反映了电子设备的可用内存空间容量的变化趋势,占用内存空间容量变化曲线即反映了前台进程的占用内存空间容量的变化趋势,因此,电子设备根据可用内存空间容量变化曲线和占用内存空间容量变化曲线确定内存清理策略。

示例性地,在可用内存空间容量变化曲线的平均斜率为负,占用内存空间容量变化曲线的平均斜率为正,且可用内存空间容量变化曲线的平均斜率绝对值小于占用内存空间容量变化曲线的平均斜率绝对值时,确定内存清理策略为不进行内存清理操作;或者

在可用内存空间容量变化曲线的平均斜率为负,占用内存空间容量变化曲线的平均斜率为正,且可用内存空间容量变化曲线的平均斜率绝对值大于或等于占用内存空间容量变化曲线的平均斜率绝对值时,确定内存清理策略为进行内存清理操作;或者

在可用内存空间容量变化曲线的平均斜率为负,且占用内存空间容量变化曲线的平均斜率为负时,确定内存清理策略为不进行内存清理操作;或者

在可用内存空间容量变化曲线的平均斜率为正,占用内存空间容量变化曲线的平均斜率为正或负时,确定内存清理策略为不进行内存清理操作。

在240中,电子设备根据内存清理策略,进行或不进行内存清理操作。

电子设备在确定内存清理策略之后,即根据确定的内存清理策略,进行或不进行内存清理操作。

比如,在确定的内存清理策略为进行内存清理操作时,则电子设备相应进行内存清理操作,在确定的内存清理策略为不进行内存清理操作时,则电子设备相应不进行内存清理操作。

应当说明的是,本申请实施例中对于电子设备执行的内存清理操作不作具体限制,可由本领域技术人员根据实际需要进行配置。

如上,通过周期性的执行210-240,能够动态地对电子设备进行内存清理操作,提高电子设备进行内存清理操作的有效性。

请参照图11,图11为本申请实施例提供的内存清理装置300的一结构示意图。该内存清理装置300应用于本申请提供的电子设备。如图11所示,该内存清理装置300可以包括:

第一获取模块310,用于在电子设备的可用内存空间容量大于或等于内存清理阈值时,获取可用内存空间容量的第一变化趋势;

第二获取模块320,用于获取前台进程占用内存空间容量的第二变化趋势;

策略确定模块330,用于根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略;以及

内存清理模块340,用于根据内存清理策略,控制电子设备进行或不进行内存清理操作。

可选地,在一实施例中,在获取可用内存空间容量的第一变化趋势时,第一获取模块310用于:

按照预设采样频率,对电子设备在预设采样周期内的可用内存空间容量进行采样,得到多个可用内存空间采样容量;

根据多个可用内存空间采样容量拟合得到电子设备的可用内存空间容量变化曲线;

将可用内存空间容量变化曲线作为第一变化趋势。

可选地,在一实施例中,在获取前台进程占用内存空间容量的第二变化趋势时,第二获取模块320用于:

按照预设采样频率,对前台进程在预设采样周期内的占用内存空间容量进行采样,得到多个占用内存空间采样容量;

根据多个占用内存空间采样容量拟合得到前台进程的占用内存空间容量变化曲线;

将占用内存空间容量变化曲线作为第二变化趋势。

可选地,在一实施例中,在根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略时,策略确定模块330用于:

在可用内存空间容量变化曲线的平均斜率为负,占用内存空间容量变化曲线的平均斜率为正,且可用内存空间容量变化曲线的平均斜率绝对值小于占用内存空间容量变化曲线的平均斜率绝对值时,确定内存清理策略为不进行内存清理操作。

可选地,在一实施例中,在根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略时,策略确定模块330用于:

在可用内存空间容量变化曲线的平均斜率为负,占用内存空间容量变化曲线的平均斜率为正,且可用内存空间容量变化曲线的平均斜率绝对值大于或等于占用内存空间容量变化曲线的平均斜率绝对值时,确定内存清理策略为进行内存清理操作。

可选地,在一实施例中,在根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略时,策略确定模块330用于:

在可用内存空间容量变化曲线的平均斜率为负,且占用内存空间容量变化曲线的平均斜率为负时,确定内存清理策略为不进行内存清理操作。

可选地,在一实施例中,在控制电子设备进行内存清理操作时,内存清理模块340用于:

根据各后台进程的预分配优先级,确定结束的目标后台进程;

结束目标后台进程,释放目标后台进程占用的内存空间容量。

应当说明的是,本申请实施例提供的内存清理装置与上文实施例中的内存清理方法属于同一构思,其具体实现过程详见以上相关实施例,此处不再赘述。

本申请实施例提供一种存储介质,其上存储有计算机程序,当其存储的计算机程序在本申请实施例提供的电子设备的处理器上执行时,使得电子设备的处理器执行以上任一内存清理方法中的步骤。其中,存储介质可以是磁碟、光盘、只读存储器(readonlymemory,rom)或者随机存取器(randomaccessmemory,ram)等。

本申请还提供一种电子设备,请参照图12,电子设备400包括处理器410和存储器420。

本申请实施例中的处理器410可以是通用处理器,比如arm架构的处理器。

存储器420中存储有计算机程序,其可以为高速随机存取存储器,还可以为非易失性存储器,比如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。相应地,存储器420还可以包括存储器控制器,以提供处理器401对存储器420的访问。处理器410通过执行存储器420中的计算机程序,用于执行以上任一适于电子设备的内存清理方法,比如:

在电子设备的可用内存空间容量大于或等于内存清理阈值时,获取可用内存空间容量的第一变化趋势;

获取前台进程占用内存空间容量的第二变化趋势;

根据第一变化趋势和第二变化趋势,确定针对电子设备的内存清理策略;以及

根据内存清理策略,控制电子设备进行或不进行内存清理操作。

以上对本申请所提供的一种内存清理方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1