内存数据的回写方法、装置及设备与流程

文档序号:32418662发布日期:2022-12-02 22:38阅读:286来源:国知局
内存数据的回写方法、装置及设备与流程

1.本技术涉及终端技术领域,特别涉及一种内存数据的回写方法、装置及设备。


背景技术:

2.内存回写是内存扩展的一部分,由系统在满足特定条件时,例如内存紧张,触发内存压缩,将压缩或者未压缩的内存数据拷贝到交换分区,当满足定时任务条件时,将交换分区内空闲状态的内存数据回写到磁盘。当内存数据需要使用时,就从磁盘读取出来直接使用。
3.但是目前市场上的内存回写,都是根据定时任务在固定周期时进行回写,即使设备没有使用也按既定的固定周期进行回写,并且把交换分区中的所有内存数据都进行回写,容易使得待机功耗提升,回写性能资源浪费,最终导致磁盘寿命降低以及回写数据也无法缓解内存紧张的情况。


技术实现要素:

4.本技术的目的是提供一种内存数据的回写方法、装置及设备,用以解决磁盘寿命降低和即使回写数据也无法缓解内存紧张的问题。
5.第一方面,本技术提供一种内存数据的回写方法,所述方法包括:
6.监测终端设备的内存空间的剩余容量;
7.若监测到所述终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理;其中,所述交换分区用于存储需要进行回写处理的内存数据;
8.若监测到所述终端设备的内存空间的剩余容量不小于预设容量阈值,则基于所述内存数据的回写周期,对所述交换分区中的内存数据进行回写处理。
9.在一种可能的实施方式中,所述若监测到所述终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理,包括:
10.获取所述交换分区的各个内存数据的压缩程度和回写空间的剩余容量;所述回写空间用于存储回写处理后的内存数据;
11.基于所述内存空间的剩余容量和所述交换分区的各个内存数据的压缩程度,从所述交换分区中确定进行回写处理的多个候选内存数据;
12.基于所述回写空间的剩余容量,从所述多个候选内存数据中选取部分或者全部内存数据进行回写处理。
13.在一种可能的实施方式中,所述基于所述内存空间的剩余容量和所述交换分区的各个内存数据的压缩程度,从所述交换分区中确定进行回写处理的多个候选内存数据,包括:
14.基于所述内存空间的剩余容量,确定进行回写处理的内存数据的数据量;
15.基于确定出的进行回写处理的内存数据的数据量和各个内存数据的压缩程度,从所述交换分区中确定进行回写处理的多个候选内存数据。
16.在一种可能的实施方式中,所述基于确定出的进行回写处理的内存数据的数据量和各个内存数据的压缩程度,确定进行回写处理的多个候选内存数据,包括:
17.基于确定出的进行回写处理的内存数据的数据量,按照所述压缩程度从低到高的顺序,从所述交换分区中选取处于空闲状态的多个候选内存数据。
18.在一种可能的实施方式中,所述基于所述回写空间的剩余容量,从所述多个候选内存数据中选取部分或者全部内存数据进行回写处理,包括:
19.若所述多个候选内存数据的数据量大于所述回写空间的剩余容量,则按照候选内存数据的压缩程度从低到高的顺序,从所述多个候选内存数据中选取部分内存数据进行回写处理;
20.若所述多个候选内存数据的数据量不大于所述回写空间的剩余容量,则将所述多个候选内存数据全部进行回写处理。
21.在一种可能的实施方式中,所述若监测到所述终端设备的内存空间的剩余容量不小于预设容量阈值,则基于所述内存数据的回写周期,对所述交换分区中的内存数据进行回写处理,包括:
22.若监测到所述终端设备的内存空间的剩余容量不小于预设容量阈值,则获取回写周期定时器的状态;当所述回写周期定时器的状态为超时状态后,对交换分区中的内存数据进行回写处理。
23.在一种可能的实施方式中,所述方法还包括:
24.监测所述终端设备的状态;
25.若监测到所述终端设备从亮屏状态变为灭屏状态,则控制所述回写周期定时器停止计时;
26.若监测到所述终端设备从灭屏状态变为亮屏状态,则基于监测到所述终端设备变为亮屏状态的时刻,与所述回写周期定时器最近一次启动计时的时刻,对所述回写周期定时器的状态进行更新。
27.在一种可能的实施方式中,所述基于监测到所述终端设备变为亮屏状态的时刻,与所述回写周期定时器最近一次启动计时的时刻,对所述回写周期定时器的状态进行更新,包括:
28.若监测到所述终端设备变为亮屏状态的时刻、与所述回写周期定时器最近一次启动计时的时刻之间的时间差不小于所述回写周期,则将所述回写周期定时器的状态更新为超时状态;
29.若监测到所述终端设备变为亮屏状态的时刻、与所述回写周期定时器最近一次启动计时的时刻之间的时间差小于所述回写周期,则将所述回写周期与所述时间差之间的差值作为所述回写周期定时器的回写周期,并开始计时。
30.第二方面,本技术提供一种内存数据的回写装置,所述装置包括:
31.监测模块,用于监测终端设备的内存空间的剩余容量;
32.回写模块,用于若监测到所述终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理;其中,所述交换分区用于存储需要进行回写处理的内存数据;
33.所述回写模块,还用于若监测到所述终端设备的内存空间的剩余容量不小于预设
容量阈值,则基于所述内存数据的回写周期,对所述交换分区中的内存数据进行回写处理。
34.第三方面,本技术提供一种终端设备,包括:
35.处理器和存储器;
36.所述存储器,用于存储所述处理器可执行指令;
37.所述处理器被配置为执行所述指令以实现如上述第一方面中任一项所述的内存数据的回写方法。
38.第四方面,本技术提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由终端设备执行时,使得所述终端设备能够执行如上述第一方面中任一项所述的内存数据的回写方法。
39.第五方面,本技术提供一种计算机程序产品,包括计算机程序:
40.所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的内存数据的回写方法。
41.本技术的实施例提供的技术方案至少带来以下有益效果:
42.本技术实施例通过监测终端设备的内存空间的剩余容量;若监测到终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理;其中,交换分区用于存储需要进行回写处理的内存数据;若监测到终端设备的内存空间的剩余容量不小于预设容量阈值,则基于内存数据的回写周期,对交换分区中的内存数据进行回写处理。由此可以按照终端设备的内存空间的剩余容量,选择不同的方式对交换分区的内存数据进行回写,同时可以根据终端设备的状态,对回写周期对应的定时器的状态进行更新,可避免无用的回写,提升磁盘的使用率和使用价值,增加应用后台留存率,提升磁盘的寿命以及降低待机功耗。
43.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
44.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1为本技术实施例提供的一种内存数据的回写方法的应用场景图;
46.图2为本技术实施例提供的一种终端设备的结构示意图;
47.图3为本技术实施例提供的一种终端设备的软件结构框图;
48.图4为本技术实施例提供的一种内存数据的回写的示意图;
49.图5为本技术实施例提供的一种内存数据的回写的示意图;
50.图6为本技术实施例提供的一种内存数据的回写的示意图;
51.图7为本技术实施例提供的一种内存数据的回写方法的流程示意图;
52.图8为本技术实施例提供的一种内存数据的回写方法的流程示意图;
53.图9为本技术实施例提供的一种候选内存数据的确定方法的流程示意图;
54.图10为本技术实施例提供的一种预设阈值的示意图;
55.图11为本技术实施例提供的一种内存数据的回写方法的流程示意图;
56.图12为本技术实施例提供的一种内存数据的回写方法的流程示意图;
57.图13为本技术实施例提供的一种内存数据的回写方法的流程示意图;
58.图14为本技术实施例提供的一种获取回写周期定时器的状态的流程示意图;
59.图15为本技术实施例提供的一种对回写周期定时器的状态进行更新的流程示意图;
60.图16为本技术实施例提供的一种内存数据的回写方法的流程示意图;
61.图17为本技术实施例提供的一种内存数据的回写方法的流程示意图;
62.图18为本技术实施例提供的一种现有回写方法和本技术的回写方法的比较结果示意图;
63.图19为本技术实施例提供的一种终端设备的示意图;
64.图20为本技术实施例提供的一种内存数据的回写装置的示意图。
具体实施方式
65.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。其中,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
66.并且,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本技术实施例的描述中,“多个”是指两个或多于两个。
67.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
68.内存回写是内存扩展的一部分,由系统在满足特定条件时,例如内存紧张,触发内存压缩,将压缩或者未压缩的内存数据拷贝到交换分区,当满足定时任务条件时,将交换分区内空闲状态的内存数据回写到磁盘。当内存数据需要使用时,就从磁盘读取出来直接使用。
69.但是目前市场上的内存回写,一方面,都是根据定时任务在固定周期时进行回写,并且把交换分区中的所有内存数据都进行回写。例如目前将固定周期一般设置为24小时,每24小时检测一次,把24小时内不用的内存数据进行回写。但是24小时内不用的内存数据其实就是基本无用的内存数据,而用户要使用内存,也不会等24小时将内存数据回写后腾出来内存空间再使用,这会让用户觉得毫无使用体验,而且还占用了部分磁盘和回写性能资源。另一方面,这种定时任务会导致设备休眠时,也会按既定的固定周期反复被唤醒进行回写,即使没有实际的回写数据,容易使得待机功耗提升。最终上述不足会导致磁盘寿命降低和即使回写数据也无法缓解内存紧张的情况。
70.有鉴于此,本技术提供了一种内存数据的回写方法、装置及设备,用以解决磁盘寿命降低和即使回写数据也无法缓解内存紧张的问题。
71.本技术的发明构思可概括为:本技术实施例中通过监测终端设备的内存空间的剩余容量;若监测到终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理;其中,交换分区用于存储需要进行回写处理的内存数据;若监测到终端设备的内存空间的剩余容量不小于预设容量阈值,则基于内存数据的回写周期,对交换分区中的内存数据进行回写处理。由此可以按照终端设备的内存空间的剩余容量,选择不同的方式对交换分区的内存数据进行回写,同时可以根据终端设备的状态,对回写周期对应的定时器的状态进行更新,可避免无用的回写,提升磁盘的使用率和使用价值,增加应用后台留存率,提升磁盘的寿命以及降低待机功耗。
72.在介绍完本技术实施例的主要发明思想之后,下面结合附图对本技术实施例提供的一种内存数据的回写方法的应用场景图进行介绍。图1中包括:用户101、终端设备102、数据库103,其中:
73.用户101,用于启动终端设备102,并且通过操作终端设备,改变终端设备102的状态;终端设备102的状态包括亮屏状态和灭屏状态。
74.终端设备102,用于监测终端设备102的内存空间的剩余容量;若监测到终端设备102的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理;其中,交换分区用于存储需要进行回写处理的内存数据;若监测到终端设备102的内存空间的剩余容量不小于预设容量阈值,则基于内存数据的回写周期,对交换分区中的内存数据进行回写处理。
75.数据库103,用于存储内存数据以及对内存中的数据进行更新。
76.当然,本技术实施例提供的方法并不限于图1所示的应用场景,还可以用于其它可能的应用场景,本技术实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
77.在介绍完本技术提供的内存数据的回写方法的应用场景图之后,下面先对本技术提供的终端设备进行说明。
78.图2示出了一种终端设备100的结构示意图。应该理解的是,图2所示终端设备100仅是一个范例,并且终端设备100可以具有比图2中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
79.图2中示例性示出了根据示例性实施例中终端设备100的硬件配置框图。如图2所示,终端设备100包括:射频(radio frequency,rf)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、无线保真(wireless fidelity,wi-fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。
80.rf电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
81.存储器120可用于存储软件程序及数据。处理器180通过运行存储在存储器120的软件程序或数据,从而执行终端设备100的各种功能以及数据处理。存储器120可以包括高
速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得终端设备100能运行的操作系统。本技术中存储器120可以存储操作系统及各种应用程序,还可以存储执行本技术实施例内存数据的回写方法的程序代码。
82.显示单元130可用于接收输入的数字或字符信息,产生与终端设备100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在终端设备100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如点击按钮。
83.显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及终端设备100的各种菜单的图形用户界面(graphical user interface,gui)。具体地,显示单元130可以包括设置在终端设备100正面的显示屏132。其中,显示屏132可以采用液晶显示器、发光二极管等形式来配置。
84.其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现终端设备100的输入和输出功能,集成后可以简称触摸显示屏。本技术中显示单元130可以显示应用程序以及对应的操作步骤。
85.摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器180转换成数字图像信号。
86.终端设备100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。终端设备100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
87.音频电路160、扬声器161、麦克风162可提供用户与终端设备100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出。终端设备100还可配置音量按钮,用于调节声音信号的音量,还可以用于组合其他按钮,调整封闭区域。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至rf电路110以发送给比如另一终端设备,或者将音频数据输出至存储器120以便进一步处理。
88.wi-fi属于短距离无线传输技术,终端设备100可以通过wi-fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
89.处理器180是终端设备100的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行终端设备100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本技术中处理器180可以运行操作系统、应用程序、用户界面显示及触控响应,以及本技术实施例的内存数据的回写方法。另外,处理器180与显示单元130耦接。
90.蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴电子设备(例如
智能手表)建立蓝牙连接,从而进行数据交互。
91.终端设备100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。终端设备100还可配置有电源按钮,用于终端设备的开机和关机,以及锁屏等功能。
92.图3是本技术实施例的一种终端设备100的软件结构框图。
93.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
94.应用程序层可以包括一系列应用程序包。
95.如图3所示,应用程序包可以包括电话、彩信,wifi,微信,信息,闹钟,图库,日历,wlan等应用程序。
96.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
97.如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
98.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
99.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿、短信息等。
100.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信息通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
101.电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
102.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。
103.通知管理器使应用程序可以在状态栏中显示通知信息(例如短信息的消息内容),可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
104.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
105.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
106.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
107.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。
108.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
109.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
110.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
111.2d(一种动画方式)图形引擎是2d绘图的绘图引擎。
112.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
113.本技术实施例中的终端设备100可以为包括但不限于智能手机、平板电脑、可穿戴电子设备(例如智能手表)、笔记本电脑等电子设备。
114.为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。
115.为了便于理解本技术实施例提供的内存数据的回写方法,下面先对内存回写的基本流程做一个简单介绍:
116.终端设备启动后,会首先进行初始化,启动各种init(初始化)任务,包含内存初始化;同时会开启swapon_all(激活交换分区)任务,同时对磁盘的回写空间进行初始化。然后会启动storagemanager service(存储管理服务),当storagemanager service启动后,判断是否开启了内存压缩和内存回写,如果开启了内存压缩和内存回写,就启动内存压缩和内存回写任务,首先将交换分区的所有内存数据标记为空闲,然后启动定时任务,当满足定时任务的定时条件时,将交换分区的有空闲标记的内存数据回写到磁盘。
117.示例性的,如图4所示,当内存watermark(水位标志)低于low(最低)水线时,kswapd(守护进程)会被唤醒工作,此时假设将内存数据block0和内存数据block1被压缩后进入zram(交换分区)中。然后通过zram的write back(回写)机制将内存数据block1写入到实际物理磁盘中。其中,可以看到压缩后内存数据block0和内存数据block1明显变小。
118.回写结束后,如图5所示,内存数据block0存储在zram中,内存数据block1存储在实际物理磁盘中。当用户打开应用去访问内存数据block1时,就会产生访问错误,此时系统就会先去zram中找,若没有找到内存数据block1,会查询实际物理磁盘,如图6所示,会先将内存数据block1从实际物理磁盘中取出,放到内存中并进行解压,得到原始的内存数据block1进行使用。
119.参见图7,为本技术实施例提供的一种内存数据的回写方法的流程示意图。如图7所示,该方法包括以下步骤:
120.在步骤701中,监测终端设备的内存空间的剩余容量。
121.其中,可以设置实时监测终端设备的内存空间的剩余容量,也可以设置在一个回写周期内监测终端设备的内存空间的剩余容量的次数不超过3次,可以根据实际需要进行
设置,本技术实施例对此不做限制。
122.在步骤702中,若监测到终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理。
123.其中,交换分区用于存储需要进行回写处理的内存数据。其中,预设容量阈值可以根据内存空间的总容量进行设置,也可以根据经验值进行设置,本技术实施例对此不作限定。
124.在步骤703中,若监测到终端设备的内存空间的剩余容量不小于预设容量阈值,则基于内存数据的回写周期,对交换分区中的内存数据进行回写处理。
125.下面分别对步骤702和步骤703中的两种情况进行说明。
126.实施例1:当终端设备的内存空间的剩余容量小于预设容量阈值时。
127.在一种可能的实施方式中,本技术实施例中若监测到终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理,具体可以执行为如图8所示的步骤:
128.在步骤801中,获取交换分区的各个内存数据的压缩程度和回写空间的剩余容量。
129.其中,回写空间用于存储回写处理后的内存数据。
130.在步骤802中,基于内存空间的剩余容量和交换分区的各个内存数据的压缩程度,从交换分区中确定进行回写处理的多个候选内存数据。
131.在一种可能的实施方式中,本技术实施例中基于内存空间的剩余容量和交换分区的各个内存数据的压缩程度,从交换分区中确定进行回写处理的多个候选内存数据,具体可以执行为如图9所示的步骤:
132.在步骤901中,基于内存空间的剩余容量,确定进行回写处理的内存数据的数据量。
133.在步骤902中,基于确定出的进行回写处理的内存数据的数据量和各个内存数据的压缩程度,从交换分区中确定进行回写处理的多个候选内存数据。
134.在一种可能的实施方式中,步骤902中的基于确定出的进行回写处理的内存数据的数据量和各个内存数据的压缩程度,从交换分区中确定进行回写处理的多个候选内存数据可以具体执行为:基于确定出的进行回写处理的内存数据的数据量,按照压缩程度从低到高的顺序,从交换分区中选取处于空闲状态的多个候选内存数据。
135.在一种可能的实施方式中,若本技术实施例中的预设容量阈值为第一预设容量阈值;则基于内存空间的剩余容量和交换分区的各个内存数据的压缩程度,从交换分区中确定进行回写处理的多个候选内存数据,具体可以实施为下列三种方式:
136.方式一:若内存空间的剩余容量小于第一预设容量阈值,且不小于第二预设容量阈值,则确定进行回写处理的内存数据的数据量为第一指定数量;按照交换分区的各个内存数据的压缩程度从低到高的顺序,从交换分区中选取处于空闲状态的第一指定数量的候选内存数据。
137.方式二:若内存空间的剩余容量小于第二预设容量阈值,且不小于第三预设容量阈值,则确定进行回写处理的内存数据的数据量为第二指定数量;按照交换分区的各个内存数据的压缩程度从低到高的顺序,从交换分区中选取处于空闲状态的第二指定数量的候选内存数据。
138.方式三:若内存空间的剩余容量小于第三预设容量阈值,则确定进行回写处理的内存数据的数据量为第三指定数量;按照交换分区的各个内存数据的压缩程度从低到高的顺序,从交换分区中选取处于空闲状态的第三指定数量的候选内存数据;
139.其中,第一指定数量小于第二指定数量,第二指定数量小于第三指定数量。
140.示例性的,如图10所示,分别对总容量为12g、8g、6g、4g的内存设置的第一预设容量阈值、第二预设容量阈值、第三预设容量阈值。假设内存的总容量为12g,则当内存空间的剩余容量小于a1但大于a2时,将交换分区压缩率高于50%,且处于空闲状态的1/3的内存数据作为候选内存数据回写到磁盘;当内存的剩余容量小于a2但大于a3时,将交换分区压缩率高于25%,且处于空闲状态的2/3的内存数据作为候选内存数据回写到磁盘;当内存的剩余容量小于a3时,将交换分区压缩率高于12.5%,且处于空闲状态的全部内存数据作为候选内存数据回写到磁盘。
141.当然,存在压缩率高于50%的内存数据的数量不足处于空闲状态的内存数据的1/3,因此可以将内存数据按照压缩率进行排序,按照从低到高的顺序选取处于空闲状态的1/3的内存数据作为候选内存数据回写到磁盘,其余两种情况相同,在此不进行赘述。其中,内存数据的压缩率越高,压缩程度越低。
142.在步骤803中,基于回写空间的剩余容量,从多个候选内存数据中选取部分或者全部内存数据进行回写处理。
143.在一种可能的实施方式中,本技术实施例中基于回写空间的剩余容量,从多个候选内存数据中选取部分或者全部内存数据进行回写处理,可以执行为如图11所示的步骤:
144.在步骤1101中,获取回写空间的剩余容量。
145.在步骤1102中,判断多个候选内存数据的数据量是否大于回写空间的剩余容量;若多个候选内存数据的数据量大于回写空间的剩余容量,则在步骤1103中,按照候选内存数据的压缩程度从低到高的顺序,从多个候选内存数据中选取部分内存数据进行回写处理;若多个候选内存数据的数据量不大于回写空间的剩余容量,则在步骤1104中,将多个候选内存数据全部进行回写处理。
146.具体实施时,若多个候选内存数据的数据量大于回写空间的剩余容量,则按照候选内存数据的压缩程度从低到高的顺序,从多个候选内存数据中选取回写空间的剩余容量能够容纳的内存数据进行回写处理;若多个候选内存数据的数据量不大于回写空间的剩余容量,则将多个候选内存数据全部进行回写处理。
147.示例性的,若多个候选内存数据的数据量为1000m(兆),回写空间的剩余容量为800m,则按照候选内存数据的压缩程度从低到高的顺序,从多个候选内存数据中选取800m的内存数据进行回写处理;若多个候选内存数据的数据量为800m,回写空间的剩余容量为1000m,则将多个候选内存数据全部进行回写处理。
148.为了便于理解实施例1的方案,下面根据图12所示的内存数据的回写方法的流程示意图,将实施例1的方案进行整体说明。
149.在1201中,获取交换分区的各个内存数据的压缩程度和回写空间的剩余容量。
150.其中,为了获取交换分区的各个内存数据的压缩程度和回写空间的剩余容量,可以在终端设备开启时,进行数据初始化,获取终端设备的当前状态、回写周期、每一个回写数据的压缩程度、回写空间的总容量、回写空间的剩余容量、内存空间的总容量、内存空间
的剩余容量、交换分区的总容量等等数据。
151.在1202中,监测终端设备的内存空间的剩余容量。
152.在1203中,判断内存空间的剩余容量是否小于第一预设容量阈值,若否,则在步骤1204中,基于内存数据的回写周期,对交换分区中的内存数据进行回写处理;若是,则在步骤1205中,判断内存空间的剩余容量是否小于第二预设容量阈值;若否,则在步骤1206中,按照交换分区的各个内存数据的压缩程度从低到高的顺序,从交换分区中选取处于空闲状态的第一指定数量的候选内存数据;若是,则在步骤1207中,判断内存空间的剩余容量是否小于第三预设容量阈值;若否,则在步骤1208中,按照交换分区的各个内存数据的压缩程度从低到高的顺序,从交换分区中选取处于空闲状态的第二指定数量的候选内存数据;若是,则在步骤1209中,按照交换分区的各个内存数据的压缩程度从低到高的顺序,从交换分区中选取处于空闲状态的第三指定数量的候选内存数据;
153.在步骤1210中,判断候选内存数据的数据量是否大于回写空间的剩余容量;若是,则在步骤1211中,按照候选内存数据的压缩程度从低到高的顺序,从多个候选内存数据中选取回写空间的剩余容量能够容纳的内存数据进行回写处理;若否,则在步骤1212中,将多个候选内存数据全部进行回写处理。
154.实施例2:当终端设备的内存空间的剩余容量不小于预设容量阈值时。
155.在一种可能的实施方式中,本技术实施例中若监测到终端设备的内存空间的剩余容量不小于预设容量阈值,则基于内存数据的回写周期,对交换分区中的内存数据进行回写处理,可以执行为如图13所示的步骤:
156.在步骤1301中,若监测到终端设备的内存空间的剩余容量不小于预设容量阈值,则获取回写周期定时器的状态。
157.在步骤1302中,当回写周期定时器的状态为超时状态后,对交换分区中的内存数据进行回写处理。
158.在一种可能的实施方式中,本技术实施例中获取回写周期定时器的状态时,还需要执行如图14所示的步骤:
159.在步骤1401中,监测终端设备的状态;
160.在步骤1402中,若监测到终端设备从亮屏状态变为灭屏状态,则控制回写周期定时器停止计时;
161.在步骤1403中,若监测到终端设备从灭屏状态变为亮屏状态,则基于监测到终端设备变为亮屏状态的时刻,与回写周期定时器最近一次启动计时的时刻,对回写周期定时器的状态进行更新。
162.在一种可能的实施方式中,本技术实施例中基于监测到终端设备变为亮屏状态的时刻,与回写周期定时器最近一次启动计时的时刻,对回写周期定时器的状态进行更新,可以执行为如图15所示的步骤:
163.在步骤1501中,若监测到终端设备变为亮屏状态的时刻、与回写周期定时器最近一次启动计时的时刻之间的时间差不小于回写周期,则将回写周期定时器的状态更新为超时状态。
164.在步骤1502中,若监测到终端设备变为亮屏状态的时刻、与回写周期定时器最近一次启动计时的时刻之间的时间差小于回写周期,则将回写周期与时间差之间的差值作为
回写周期定时器的回写周期,并开始计时。
165.其中,若监测到终端设备从亮屏状态变为灭屏状态,则控制回写周期定时器停止计时,并且设置一个预设时长,监测预设时长内的终端设备的状态。当在预设时长结束时,终端设备还没有从灭屏状态变为亮屏状态时,则启动一次回写任务,将交换分区中所有处于空闲状态的内存数据进行回写处理。其中预设时长大于回写周期。
166.例如,若回写周期的时间为20分钟,当监测到终端设备从亮屏状态变为灭屏状态,则控制回写周期定时器停止计时;并且设置一个预设时长30分钟,监测30分钟内的终端设备的状态。当在30分钟结束时,终端设备还没有从灭屏状态变为亮屏状态时,则启动一次回写任务,将交换分区中所有处于空闲状态的内存数据进行回写处理,然后停止对交换分区中的内存数据进行回写处理,直至终端设备变为亮屏状态。
167.示例性的,若终端设备反复亮屏和灭屏,则根据终端设备变为亮屏状态的时刻、与回写周期定时器最近一次启动计时的时刻之间的时间差小于回写周期,则将回写周期与时间差之间的差值作为回写周期定时器的回写周期,并开始计时。
168.假设回写周期为20分钟,在10:40时回写周期定时器启动计时,但是在10:43终端设备灭屏,此时回写周期定时器停止计时;若在10:47,终端设备变为亮屏状态,则因为10:47-10:40的时长为7分钟,小于回写周期,则将20-7=13分钟作为回写周期定时器的回写周期,并开始计时,直至13分钟后,对交换分区中的内存数据进行回写处理。假设在10:50的时候终端设备又变为灭屏状态,则将回写周期定时器停止计时;若在10:53,终端设备变为亮屏状态,则因为10:53-10:47的时长为6分钟,小于此时的回写周期13分钟,则将13-6=7分钟作为回写周期定时器的回写周期,并开始计时,直至7分钟后,对交换分区中的内存数据进行回写处理。
169.在一种可能的实施方式中,本技术实施例中对交换分区中的内存数据进行回写处理,可以执行为如图16所示的步骤:
170.在步骤1601中,获取交换分区的处于空闲状态的内存数据和回写空间的剩余容量。
171.在步骤1602中,判断交换分区的处于空闲状态的内存数据的数据量是否大于回写空间的剩余容量;若是,则在步骤1603中,从交换分区的处于空闲状态的内存数据中选取回写空间的剩余容量能够容纳的内存数据进行回写处理;若否,则在步骤1604中,将交换分区的处于空闲状态的内存数据全部进行回写处理。
172.为了便于理解实施例2的方案,下面根据图17所示的内存数据的回写方法的流程示意图,将实施例2的方案进行整体说明。
173.在1701中,获取交换分区的处于空闲状态的内存数据和回写空间的剩余容量。
174.其中,为了获取交换分区的处于空闲状态的内存数据和回写空间的剩余容量,可以在终端设备开启时,进行数据初始化,获取终端设备的当前状态、回写周期、每一个回写数据的压缩程度、回写空间的总容量、回写空间的剩余容量、内存空间的总容量、内存空间的剩余容量、交换分区的总容量等等数据。
175.在1702中,监测终端设备的内存空间的剩余容量。
176.在1703中,判断内存空间的剩余容量是否小于预设容量阈值,若是,则在步骤1704中,对交换分区中的内存数据进行回写处理;若否,则在步骤1705中,监测终端设备的状态;
177.在步骤1706中,基于监测到的终端设备的状态,获取回写周期定时器的状态;
178.在步骤1707中,判断回写周期定时器的状态是否为超时状态;若否,则在步骤1708中,等待计时,直至变为超时状态;若是,则在步骤1709中,判断交换分区的处于空闲状态的内存数据的数据量是否大于回写空间的剩余容量;若是,则在步骤1710中,从交换分区的处于空闲状态的内存数据中选取回写空间的剩余容量能够容纳的内存数据进行回写处理;若否,则在步骤1711中,将交换分区的处于空闲状态的内存数据全部进行回写处理。
179.基于前文的描述,本技术实施例通过监测终端设备的内存空间的剩余容量;若监测到终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理;其中,交换分区用于存储需要进行回写处理的内存数据;若监测到终端设备的内存空间的剩余容量不小于预设容量阈值,则基于内存数据的回写周期,对交换分区中的内存数据进行回写处理。由此可以按照终端设备的内存空间的剩余容量,选择不同的方式对交换分区的内存数据进行回写,同时可以根据终端设备的状态,对回写周期对应的定时器的状态进行更新,可避免无用的回写,提升磁盘的使用率和使用价值,提升磁盘的寿命以及降低待机功耗。另外,如图18所示,为分别对现有的回写方法和本技术的回写方法进行多次试验后得到的结果,通过对比,可以明确看到本技术的回写方法增加了应用后台留存率。
180.基于相同的发明构思,本技术实施例还提供一种终端设备,如图19所示,包括:处理器180、存储器120和总线接口1900,处理器180负责管理总线架构和通常的处理,存储器120可以存储处理器180在执行操作时所使用的数据。
181.其中,在图19中,总线接口1900可以包括任意数量的互联的总线和桥,具体由处理器180代表的一个或多个处理器180和存储器120代表的存储器120的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口1900提供接口。可选的,处理器180可以是cpu(中央处埋器)、asic(application specific integrated circuit,专用集成电路)、fpga(field-programmable gate array,现场可编程门阵列)或cpld(complex programmable logic device,复杂可编程逻辑器件),处理器也可以采用多核架构。
182.处理器180通过调用存储器120存储的计算机程序,用于按照获得的可执行指令执行本技术实施例提供的任一内存数据的回写方法。处理器180与存储器120也可以物理上分开布置。
183.在此需要说明的是,本发明实施例提供的上述设备,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
184.基于相同的发明构思,本技术实施例还提供一种内存数据的回写装置,如图20所示,包括:
185.监测模块2001,用于监测终端设备的内存空间的剩余容量;
186.回写模块2002,用于若监测到所述终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理;其中,所述交换分区用于存储需要进行回写处理的内存数据;
187.所述回写模块2002,还用于若监测到所述终端设备的内存空间的剩余容量不小于
预设容量阈值,则基于所述内存数据的回写周期,对所述交换分区中的内存数据进行回写处理。
188.在一种可能的实施方式中,在执行所述若监测到所述终端设备的内存空间的剩余容量小于预设容量阈值,则对交换分区中的内存数据进行回写处理时,所述回写模块2002具体用于:
189.获取所述交换分区的各个内存数据的压缩程度和回写空间的剩余容量;所述回写空间用于存储回写处理后的内存数据;
190.基于所述内存空间的剩余容量和所述交换分区的各个内存数据的压缩程度,从所述交换分区中确定进行回写处理的多个候选内存数据;
191.基于所述回写空间的剩余容量,从所述多个候选内存数据中选取部分或者全部内存数据进行回写处理。
192.在一种可能的实施方式中,在执行所述基于所述内存空间的剩余容量和所述交换分区的各个内存数据的压缩程度,从所述交换分区中确定进行回写处理的多个候选内存数据时,所述回写模块2002具体用于:
193.基于所述内存空间的剩余容量,确定进行回写处理的内存数据的数据量;
194.基于确定出的进行回写处理的内存数据的数据量和各个内存数据的压缩程度,从所述交换分区中确定进行回写处理的多个候选内存数据。
195.在一种可能的实施方式中,在执行时所述基于确定出的进行回写处理的内存数据的数据量和各个内存数据的压缩程度,确定进行回写处理的多个候选内存数据时,所述回写模块2002具体用于:
196.基于确定出的进行回写处理的内存数据的数据量,按照所述压缩程度从低到高的顺序,从所述交换分区中选取处于空闲状态的多个候选内存数据。
197.在一种可能的实施方式中,在执行所述基于所述回写空间的剩余容量,从所述多个候选内存数据中选取部分或者全部内存数据进行回写处理时,所述回写模块2002具体用于:
198.若所述多个候选内存数据的数据量大于所述回写空间的剩余容量,则按照候选内存数据的压缩程度从低到高的顺序,从所述多个候选内存数据中选取部分内存数据进行回写处理;
199.若所述多个候选内存数据的数据量不大于所述回写空间的剩余容量,则将所述多个候选内存数据全部进行回写处理。
200.在一种可能的实施方式中,在执行所述若监测到所述终端设备的内存空间的剩余容量不小于预设容量阈值,则基于所述内存数据的回写周期,对所述交换分区中的内存数据进行回写处理时,所述回写模块2002具体用于:
201.若监测到所述终端设备的内存空间的剩余容量不小于预设容量阈值,则获取回写周期定时器的状态;当所述回写周期定时器的状态为超时状态后,对交换分区中的内存数据进行回写处理。
202.在一种可能的实施方式中,所述装置还包括:
203.设备状态检测模块,用于监测所述终端设备的状态;
204.定时器状态更新模块,用于若监测到所述终端设备从亮屏状态变为灭屏状态,则
控制所述回写周期定时器停止计时;
205.所述定时器状态更新模块,用于若监测到所述终端设备从灭屏状态变为亮屏状态,则基于监测到所述终端设备变为亮屏状态的时刻,与所述回写周期定时器最近一次启动计时的时刻,对所述回写周期定时器的状态进行更新。
206.在一种可能的实施方式中,在执行所述基于监测到所述终端设备变为亮屏状态的时刻,与所述回写周期定时器最近一次启动计时的时刻,对所述回写周期定时器的状态进行更新时,所述定时器状态更新模块具体用于:
207.若监测到所述终端设备变为亮屏状态的时刻、与所述回写周期定时器最近一次启动计时的时刻之间的时间差不小于所述回写周期,则将所述回写周期定时器的状态更新为超时状态;
208.若监测到所述终端设备变为亮屏状态的时刻、与所述回写周期定时器最近一次启动计时的时刻之间的时间差小于所述回写周期,则将所述回写周期与所述时间差之间的差值作为所述回写周期定时器的回写周期,并开始计时。
209.在示例性实施例中,本技术还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器120,上述指令可由终端设备100的处理器180执行以完成上述内存数据的回写方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
210.在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器180执行时实现如本技术提供的内存数据的回写方法。
211.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
212.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
213.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
214.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
215.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1