一种资源缓存管理方法及系统和装置
技术领域
本申请涉及通信技术领域,尤其涉及一种资源缓存管理方法及系统和装置。
背景技术
随着通信技术的发展,为了满足日益增长和多种多样的业务需求,基于移动终端的互联网应用越来越多。
目前,基于移动终端的互联网应用在启动时,有可能需要加载一些数据,这些数据需要从网络侧的应用服务器下载,例如,新闻浏览应用在启动时需要加载网页,且网页中可能包含图片等多媒体信息,其信息量通常较大,导致加载速度较慢,尤其在网络状态较差的情况下,会影响用户的体验,甚至导致该互联网应用无法使用。
为了提高应用加载速度,可以将互联网应用需要使用的数据进行缓存,在该互联网应用启动时,使用缓存的数据进行加载。这种方法可以提高互联网应用的加载效率。但是,考虑到移动终端的内存容量有限,如果大量互联网应用采用上述方式进行数据缓存,则会导致移动终端的内存开销过大,进而影响互联网应用的运行效率,无法达到提高用户体验的目的,甚至导致互联网应用无法使用。
由此可见,如何兼顾移动终端内存容量使用并保证互联网应用性能,是目前亟需解决的问题。
申请内容
本申请实施例提供了一种资源缓存管理方法及系统和装置。
本申请实施例提供的资源缓存管理方法,包括:
接收数据资源;
根据所述数据资源所属的应用获取所述应用对应的资源缓存策略;其中,预先为应用配置资源缓存策略,为一个应用配置的资源缓存策略为N种资源缓存策略中的一种,N为大于1的整数;
根据获取到的资源缓存策略对接收到的数据资源进行缓存。
优选地,所述根据获取到的资源缓存策略对接收到的数据资源进行缓存,包括:
根据预先配置的数据资源的缓存容量上限,判断当前缓存的数据资源的数据量是否达到所述缓存容量上限;
若未达到,则根据获取到的资源缓存策略对接收到的数据资源进行缓存。
进一步地,若判断当前缓存的数据资源的数据量达到所述缓存容量上限,则还包括:
放弃对接收到的数据资源进行缓存;或者,
根据数据资源的缓存时间释放部分缓存的数据资源之后,根据获取到的资源缓存策略对接收到的数据资源进行缓存。
优选地,一个应用对应的资源缓存策略包括:
第一资源缓存策略,定义缓存该应用的所有数据资源;或者,
第二资源缓存策略,定义缓存该应用的部分数据资源;或者,
第三资源缓存策略,定义针对初次接收到的该应用的数据资源进行缓存。
其中,所述根据所述数据资源所属的应用获取所述应用对应的资源缓存策略,包括:
若获取到的资源缓存策略为第一资源缓存策略,则缓存接收到的数据资源;
若获取到的资源缓存策略为第二资源缓存策略,则在接收到的数据资源为所属应用的指定部分的数据资源的情况下,缓存接收到的数据资源;
若获取到的资源缓存策略为第三资源缓存策略,则在接收到的数据资源为所属应用初次接收的数据资源的情况下,缓存接收到的数据资源。
其中,所述第二资源缓存策略,具体用于定义缓存网页中的局部页面内容或网页所使用的公用文件中的一种或组合。
优选地,所述应用对应的数据资源缓存策略是根据该应用的类别、数据资源开销、使用频次中的一种或组合,为该应用配置的。
进一步地,还包括:根据所述应用的状态变化,对所述应用对应的数据资源缓存策略进行更新。
进一步地,还包括:根据预先配置的缓存管理策略以及统计得到的网络状态和/或设备运行状态,对缓存的数据资源进行管理和/或控制数据资源的缓存操作。
进一步地,还包括:
获取缓存时间最长的数据资源所属的应用,和/或,缓存数据量最大的应用;
对缓存的数据资源进行管理时,优先针对缓存时间最长的数据资源所属的应用,和/或缓存数据量最大的应用,进行数据资源释放。
优选地,所述根据预先配置的缓存管理策略以及统计得到的网络状态和/或设备运行状态,对缓存的数据资源进行管理和/或控制数据资源的缓存操作,包括:
根据统计得到的网络状态和/或设备运行状态,确定缓存管理等级;
根据确定出的缓存管理等级,采用相应等级对应的缓存管理策略,对缓存的数据资源进行管理和/或对缓存操作进行控制。
优选地,通过以下操作之一或任意组合,对缓存的数据资源进行管理:
第一释放操作,所述第一释放操作包括:针对采用第一资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第一资源缓存策略定义缓存该应用的所有数据资源;
第二释放操作,所述第二释放操作包括:针对采用第二资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第二资源缓存策略定义缓存该应用的部分数据资源;
第三释放操作,所述第三释放操作包括:针对采用第三资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第三资源缓存策略定义针对初次接收到的该应用的数据资源进行缓存。
优选地,通过以下操作之一或任意组合,对缓存操作进行控制,包括:
停止或恢复采用所述第一资源缓存策略进行数据资源缓存;
停止或恢复采用所述第二资源缓存策略进行数据资源缓存;
停止或恢复采用所述第三资源缓存策略进行数据资源缓存。
优选地,所述对缓存的数据资源进行管理,包括:
若根据统计得到的网络状态和/或设备运行状态,确定缓存管理等级为最高等级,则:
执行所述第一释放操作,并在执行所述第一释放操作后,根据获取的网络状态和/或获取的设备运行状态,判断缓存管理等级是否为最高等级;
若仍为最高等级,则执行所述第二释放操作和/或所述第三释放操作。
其中,满足以下条件中的一种或多种组合时,缓存管理等级为最高等级:
设备内存可用容量低于设定门限;
设备CPU占用率高于设定门限;
上下行传输速率高于设定门限;
丢包率低于设定门限。
优选地,所述统计得到的网络状态包括以下信息中的一种或任意组合:网络连接类型、上下行传输速率,丢包率。
优选地,所述统计得到的设备运行状态包括以下信息中的一种或任意组合:设备内存可用容量,CPU占用率。
本申请实施例提供的资源缓存管理系统,包括:缓存配置模块、缓存管理模块,以及N个缓存模块,N为大于1的整数;
所述缓存配置模块,用于为应用配置资源缓存策略;其中,为一个应用配置的资源缓存策略为N种资源缓存策略中的一种;
所述缓存管理模块,用于接收数据资源,根据所述数据资源所属的应用获取所述应用对应的资源缓存策略,根据获取到的资源缓存策略指示执行相应资源缓存策略的缓存模块对接收到的数据资源进行缓存。
优选地,所述缓存配置模块还用于:配置数据资源的缓存容量上限;
所述缓存管理模块具体用于:接收到数据资源后,根据所述缓存配置模块配置的数据资源的缓存容量,判断当前缓存的数据资源的数据量是否达到所述缓存容量上限,若未达到,则根据获取到的资源缓存策略指示执行相应资源缓存策略的缓存模块对接收到的数据资源进行缓存。
进一步地,所述缓存管理模块还用于:
若判断当前缓存的数据资源的数据量达到所述缓存容量上限,则放弃指示缓存模块对接收到的数据资源进行缓存;或者,
根据数据资源的缓存时间释放部分缓存的数据资源之后,根据获取到的资源缓存策略指示执行相应资源缓存策略的缓存模块对接收到的数据资源进行缓存。
优选地,所述N个缓存模块包括第一缓存模块、第二缓存模块和第三缓存模;
所述缓存配置模块为一个应用配置的资源缓存策略包括:
第一资源缓存策略,定义缓存该应用的所有数据资源;或者,
第二资源缓存策略,定义缓存该应用的指定部分的数据资源;或者,
第三资源缓存策略,定义针对初次接收到的该应用的数据资源进行缓存。
其中,所述缓存管理模块具体用于:
若获取到的资源缓存策略为第一资源缓存策略,则指示第一缓存模块进行数据资源缓存;
若获取到的资源缓存策略为第二资源缓存策略,则指示第二缓存模块进行数据资源缓存;
若获取到的资源缓存策略为第三资源缓存策略,则指示第三缓存模块进行数据资源缓存。
优选地,所述第二资源缓存策略,具体用于定义缓存网页中的局部页面内容或网页所使用的公用文件中的一种或组合。
优选地,所述缓存配置模块具体用于:根据应用的类别、数据资源开销、使用频次中的一种或组合,为所述应用配置数据资源缓存策略。
进步一地,所述缓存配置模块还用于:根据所述应用的状态变化,对所述应用对应的数据资源缓存策略进行更新。
优选地,还包括:网络状态上报模块和/或设备状态上报模块;
所述网络状态上报模块,用于统计并向所述缓存管理模块上报网络状态;
所述设备状态上报模块,用于统计并向所述缓存管理模块上报设备运行状态;
所述缓存配置模块还用于:配置缓存管理策略;
所述缓存管理模块还用于:根据所述缓存配置模块配置的缓存管理策略,以及所述状态统计模块上报的网络状态和/或所述设备状态上报模块上报的设备运行状态,对缓存的数据资源进行管理和/或对所述缓存模块的缓存操作进行控制。
进一步地,所述缓存管理模块还用于:获取所述缓存模块上报的缓存时间最长的数据资源所属的应用,和/或,缓存数据量最大的应用;
所述缓存管理模块具体用于:对缓存的数据资源进行管理时,优先针对缓存时间最长的数据资源所属的应用,和/或缓存数据量最大的应用,进行数据资源释放。
优选地,所述缓存管理模块具体用于:
根据所述网络状态上报模块上报的网络状态和/或所述设备状态上报模块上报的设备运行状态,确定缓存管理等级;
根据确定出的缓存管理等级,采用相应等级对应的缓存管理策略,对缓存的数据资源进行管理和/或对所述缓存模块的缓存操作进行控制。
优选地,所述缓存管理模块具体用于:
通过以下操作之一或任意组合,对缓存的数据资源进行管理和/或对所述缓存模块的缓存操作进行控制:
第一释放操作,所述第一释放操作包括:针对采用第一资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第一资源缓存策略定义缓存该应用的所有数据资源;
第二释放操作,所述第二释放操作包括:针对采用第二资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第二资源缓存策略定义缓存该应用的部分数据资源;
第三释放操作,所述第三释放操作包括:针对采用第三资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第三资源缓存策略定义针对初次接收到的该应用的数据资源进行缓存。
优选地,所述缓存管理模块具体用于通过以下操作之一或任意组合,对缓存操作进行控制:
停止或恢复通过第一缓存模块进行数据资源缓存,所述第一缓存模块采用所述第一资源缓存策略进行数据资源缓存;
停止或恢复通过第二缓存模块进行数据资源缓存,所述第二缓存模块采用所述第二资源缓存策略进行数据资源缓存;
停止或恢复通过第三缓存模块进行数据资源缓存,所述第三缓存模块采用所述第三资源缓存策略进行数据资源缓存。
其中,所述缓存管理模块具体用于:
若根据所述网络状态上报模块上报的网络状态和/或所述设备状态上报模块上报的设备运行状态,确定缓存管理等级为最高等级,则:
执行所述第一释放操作,并在执行所述第一释放操作后,根据所述网络状态上报模块上报的网络状态和/或所述设备状态上报模块上报的设备运行状态,判断缓存管理等级是否为最高等级;
若仍为最高等级,则执行所述第二释放操作和/或所述第三释放操作。
其中,满足以下条件中的一种或多种组合时,缓存管理等级为最高等级:
设备内存可用容量低于设定门限;
设备CPU占用率高于设定门限;
上下行传输速率高于设定门限;
丢包率低于设定门限。
优选地,所述网络状态上报模块上报的网络状态包括以下信息中的一种或任意组合:网络连接类型、上下行传输速率,丢包率。
优选地,所述设备状态上报模块上报的设备运行状态包括以下信息中的一种或任意组合:设备内存可用容量,CPU占用率。
本申请实施例提供的终端,包括:
存储器,用于存储计算机程序指令;
处理器,耦合到所述存储器,用于读取所述存储器存储的计算机程序指令,并作为响应,执行如下操作:
接收数据资源;
根据所述数据资源所属的应用获取所述应用对应的资源缓存策略;其中,预先为应用配置资源缓存策略,为一个应用配置的资源缓存策略为N种资源缓存策略中的一种,N为大于1的整数;
根据获取到的资源缓存策略对接收到的数据资源进行缓存。
本申请的上述实施例中,在接收到一应用的数据资源后,根据该数据资源所属的应用获取该应用对应的资源缓存策略,并根据获取到的资源缓存策略对接收到的数据资源进行缓存。其中,可预先为该应用配置资源缓存策略,为一个应用配置的资源缓存策略为N种资源缓存策略中的一种。这样,可根据需要为不同的应用配置不同的资源缓存策略,比如,可对一应用的所有数据资源进行缓存,也可以对一应用的部分数据资源进行缓存,还可以对一应用初次获得的数据资源进行缓存,从而在保证应用运行性能的同时,兼顾了终端内存开销。
附图说明
图1为本申请实施例适用的系统架构示意图;
图2为本申请一实施例提供的资源缓存管理流程示意图;
图3为本申请实施例中资源缓存策略设置过程示意图;
图4为本申请一实施例提供的资源缓存管理系统的结构示意图;
图5为本申请另一实施例提供的资源缓存管理系统的结构示意图;
图6为本申请实施例提供的终端的结构示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
图1示例性地示出了本申请实施例适用的网络架构示意图。如图1所示,该网络架构中可包括终端以及网络侧的服务器,终端和服务器通过网络进行通信。
上述架构中的终端上安装有互联网应用客户端程序,服务器上安装有互联网应用服务器端程序,终端和服务器进行配合,从服务器获取互联网应用所需的数据资源,实现互联网应用所提供的服务。
上述网络架构中的终端可以是移动终端或PC(个人电脑)等设备,所述移动终端可以是手机、PDA(Personal Digital Assistant,掌上电脑)或智能穿戴设备等。
上述网络架构中,终端和服务器可以通过网络进行信息交互,该网络可以是广域网、局域网或互联网,或者采用移动通信技术的互联网。终端可通过无线方式接入互联网,服务器通常采用有线方式与互联网连接。
优选地,终端和服务器可以采用云计算技术,以基于云计算技术的强大功能实现信息处理。服务器和终端可采用基于云计算技术的操作系统,比如YunOS,从而可以整合云端和终端的资源和服务。
本申请实施例中,可预先为应用(如互联网应用)配置资源缓存策略。其中,为一个应用配置的资源缓存策略为N种资源缓存策略中的一种,N为大于1的整数。这样,在接收到数据资源后,可根据接收到的数据资源所属的应用获取该应用对应的资源缓存策略,根据获取到的资源缓存策略对接收到的数据资源进行缓存。其中,一个应用的数据资源,是指该应用运行时所需的数据和/或程序等,例如,对于新闻浏览应用来说,一个页面,该页面中的导航栏,该页面中的一个图片,该页面使用的Java Scrip代码,该页面使用的CSS(Cascading Style Sheets,层叠样式表单)文件,都可以称为该新闻浏览应用的数据资源。
本申请实施例提供的资源缓存管理流程可如图2所示,包括如下步骤:
步骤201:接收数据资源。
步骤202:根据所述数据资源所属的应用获取所述应用对应的资源缓存策略;
步骤203:根据获取到的资源缓存策略对接收到的数据资源进行缓存。
优选地,本申请实施例提供了三种资源缓存策略,具体来说,这三种资源缓存策略分别为:
-第一资源缓存策略,定义缓存该应用的所有数据资源;
-第二资源缓存策略,定义缓存该应用的指定部分的数据资源。其中,所述第二资源缓存策略,具体用于定义缓存网页中的局部页面内容或网页所使用的公用文件中的一种或组合。
-第三资源缓存策略,定义针对每次启动后初次接收到的该应用的数据资源进行缓存。
本申请实施例中,资源缓存策略可以是预先设置的,也可以是服务器传输过来的,还可以是用户根据需要设置的。当然也可以是上述各种方式的结合。本申请实施例还允许对资源缓存策略进行更新,比如由服务器传输更新的资源缓存策略给终端,也可以允许用户通过提供的资源缓存策略设置界面对资源缓存策略进行设置或修改。以服务器向终端发送资源缓存策略为例,服务器可向终端发送资源缓存配置命令,通过该命令可通知终端需要进行资源缓存的应用以及针对需要进行资源缓存的应用所采用的资源缓存策略。
优选地,为应用配置资源缓存策略时,可根据该应用的类别、数据资源开销、使用频次等中的一种或组合,为该应用配置资源缓存策略。比如,对于启动时加载数据较大的应用,例如新闻流量应用,可为该应用设置第三资源缓存策略,这样可降低每次启动时的数据资源获取时延,提高加载效率;再例如,对于数据资源较大的应用,可为该应用设置第二资源缓存策略,这样在降低数据资源获取时延的同时还不至于占用太多内存;再例如,对于使用频次高的应用(即用户经常使用的应用),可为该应用设置第一资源缓存策略,以便将该应用的所有数据资源进行缓存,满足用户的使用需求,降低数据资源获取时延。当然也可以根据应用需求以及终端的内存容量大小,将上述各种设置资源缓存策略时考虑的依据相互结合使用。需要说明的是,上述仅列举了部分设置资源缓存策略时考虑的依据,本申请实施例不能够不仅限于上述所列举的依据。
在具体实施时,可根据约定的配置规则为应用配置资源缓存策略,该配置规则中可规定应用类型与资源缓存策略的对应关系,也可以规定不同资源缓存策略所对应的条件,比如定义数据资源开销门限,当某应用的数据资源开销大于该门限时需要为该应用设置第二资源缓存策略。网络侧可以将更新的配置规则发送给终端。为了满足用户的个性化需求,本申请实施例还允许用户对配置规则进行自行设置,或者允许用户自行为应用设置资源缓存策略。图3示例性地示出了用户根据资源缓存管理系统提供的设置界面为应用设置资源缓存策略的过程。如图3所示,用户可在“选择应用程序”界面中选择需要设置资源缓存策略的应用程序,在后续打开的“配置资源缓存策略”界面中为该应用选择一种资源缓存策略。
进一步地,还可根据应用的状态变化,对该应用对应的数据资源缓存策略进行更新。其中,应用的状态变化可包括:应用被使用的频次的变化、应用所需的数据资源开销的变化等中的一种或多种组合。这样可以在平衡应用性能和内存使用的情况下,更好地满足用户对应用的使用需求。
为了更好地平衡应用性能和内存使用,在一些优选的实施例中,还可以配置数据资源的缓存容量上限。相应地,在接收到数据资源后,可根据配置的数据资源的缓存容量上限,判断当前缓存的数据资源的数据量是否达到所述缓存容量上限,若未达到,则根据获取到的资源缓存策略对接收到的数据资源进行缓存。
进一步地,在另一些实施例中,若判断当前缓存的数据资源的数据量达到所述缓存容量上限,则放弃对接收到的数据资源进行缓存,这样可避免终端内存开销过大。在另一些实施例中,若判断当前缓存的数据资源的数据量达到所述缓存容量上限,则根据数据资源的缓存时间释放部分缓存的数据资源之后,根据获取到的资源缓存策略对接收到的数据资源进行缓存,这样可避免终端内存开销过大的同时,还可以对一些应用的数据资源进行缓存,从而达到应用性能与内存的平衡。
通过以上描述可以看出,本申请的上述实施例中,在接收到一应用的数据资源后,根据该数据资源所属的应用获取该应用对应的资源缓存策略,并根据获取到的资源缓存策略对接收到的数据资源进行缓存。其中,可预先为该应用配置资源缓存策略,为一个应用配置的资源缓存策略为N种资源缓存策略中的一种。这样,可根据需要为不同的应用配置不同的资源缓存策略,比如,可对一应用的所有数据资源进行缓存,也可以对一应用的部分数据资源进行缓存,还可以对一应用初次获得的数据资源进行缓存,从而在保证应用运行性能的同时,兼顾了终端内存开销。
进一步地,本申请实施例中,还可统计网络状态,和/或,统计设备运行状态。其中,网络状态信息可包括以下信息中的一种或任意组合:网络连接类型(比如:无线局域网连接或蜂窝网连接)、上下行传输速率,丢包率,或者是根据上述信息确定出的网络状态等级(比如网络状态等级可包括:状态良好、状态较差和状态极差);设备运行状态信息包括以下信息中的一种或任意组合:设备内存可用容量,CPU占用率,或者是根据上述信息确定出的设备状态等级(比如设备状态等级可包括:内存状态紧张、内存状态良好、内存状态空闲)。
相应地,还可配置缓存管理策略,并根据配置的缓存管理策略,以及网络状态和/或设备运行状态,对缓存的数据资源进行管理和/或对缓存操作进行控制。
其中,对缓存的数据资源进行管理的操作可包括但不限于:
-第一释放操作,所述第一释放操作包括:针对采用第一资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源;
-第二释放操作,所述第二释放操作包括:针对采用第二资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源;
-第三释放操作,所述第三释放操作包括:针对采用第三资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源。
例如,在内存资源处于紧张状态(如内存可用容量低于设定门限)的情况下,释放缓存的数据资源。
对缓存操作进行控制可包括但不限于以下操作:
-停止或恢复采用第一资源缓存策略进行数据资源缓存;
-停止或恢复采用第二资源缓存策略进行数据资源缓存;
-停止或恢复采用第三资源缓存策略进行数据资源缓存。
例如,在内存资源处于紧张状态(如内存可用容量低于设定门限)的情况下,关闭缓存模块,以停止进行数据资源缓存;在内存资源从紧张状态恢复到正常状态的情况下,开启缓存模块,以继续进行数据资源缓存。
在另一些实施例中,可根据网络状态和/或设备运行状态,确定缓存管理等级,根据确定出的缓存管理等级,采用相应等级对应的缓存管理策略,对缓存的数据资源进行管理和/或对缓存操作进行控制。
其中,优选地,缓存管理等级从高到低可分为三级:
一级:表明终端内存可用容量较少,内存紧张,需要进行数据资源释放等管理操作;
二级:表明终端内存可用容量适中,可对缓存时间较长的数据资源进行释放,即释放部分数据资源;
三级:表明终端内存可用容量较多,可不进行数据资源释放操作。
当然,以上缓存管理等级的定义仅为一种示例,本申请实施例并不仅限于上述定义的缓存管理等级定义。
在确定缓存管理等级时,可根据需要设置判断条件。举例来说,如果满足以下条件中的一种或多种组合,则缓存管理等级为最高等级:
-设备内存可用容量低于设定门限;
-设备CPU占用率高于设定门限;
-上下行传输速率高于设定门限;
-丢包率低于设定门限。
具体实施时,优选地,可综合网络状态和设备运行状态进行判断。举例来说,如果设备内存可用容量低于设定门限且终端当前通过无线局域网与网络进行通信,此时上下行传输速率高于设定门限,这种情况下,终端内存开销可能存在上升趋势,由于当前终端内存可用容量已经较低,因此需要对数据资源缓存进行必要的管理和控制。比如,可以释放缓存的数据资源,或者进一步停止数据资源缓存操作。
具体实施时,若根据网络状态和/或设备运行状态,确定缓存管理等级为最高等级,则可执行上述第一释放操作,并在执行上述第一释放操作后,根据网络状态和/或设备运行状态,判断缓存管理等级是否为最高等级;若仍为最高等级,则执行上述第二释放操作和/或上述第三释放操作。
在一些实施例中,在对缓存的数据资源进行管理时,可优先针对缓存时间最长的数据资源所属的应用进行数据资源释放,也可以优选针对缓存数据量最大的应用进行数据资源释放,也可以优选针对缓存时间最长的数据资源所属的应用以及数据量最大的应用进行数据资源释放,还可以优先针对近期最少使用的应用进行数据资源释放。当然,还可以综合考虑缓存时间、缓存数据量以及使用频次,对缓存的数据资源进行释放,例如,对缓存时间较长的应用中缓存数据量最大的应用进行数据资源释放,或者对缓存数据量较大的应用中缓存时间最长的应用进行数据资源释放。
作为一个例子,当内存紧张的时候,可优先释放采用第一缓存策略缓存的数据资源,并对采用第二缓存策略缓存的数据资源进行适度释放(即针对采用第二缓存策略缓存的数据资源,释放其中的部分数据资源),而对于采用第三缓存策略缓存的数据资源,比如所缓存的页面侧边栏(如导航栏),则可根据HTTP协议中定义的该数据资源的Expire属性和Cache-Control属性来控制对该数据资源进行释放。
通过以上描述可以看出,本申请实施例中,根据预先配置的缓存管理策略以及统计得到的网络状态和/或设备运行状态,对缓存的数据资源进行管理和/或控制数据资源的缓存操作,可以在终端内存可用容量较少时,是否缓存的数据资源,实现应用性能与内存的平衡。
基于相同的技术构思,本申请实施例还提供了一种资源缓存管理系统,该系统可由软件实现,也可由软件与硬件相结合的方式实现。该系统可集成在移动终端内部。
参见图4,为本申请实施例提供的资源缓存管理系统的结构示意图,如图所示,该系统可包括:缓存配置模块41、缓存管理模块42,以及N个缓存模块,N为大于1的整数。图4以N=3为例,示出了包括三个缓存模块的资源缓存管理系统,这三个缓存模块分别为:第一缓存模块43、第二缓存模块44和第三缓存模块45。其中,缓存配置模块41可提供给应用开发的缓存能力JS API,通过调用JS API可以实现资源缓存策略的配置操作。
缓存配置模块41,用于为应用配置资源缓存策略;其中,为一个应用配置的资源缓存策略为N种资源缓存策略中的一种;
缓存管理模块42,用于接收数据资源,根据所述数据资源所属的应用获取所述应用对应的资源缓存策略,根据获取到的资源缓存策略指示执行相应资源缓存策略的缓存模块对接收到的数据资源进行缓存。
优选地,缓存配置模块41还用于:配置数据资源的缓存容量上限。相应地,缓存管理模块42具体用于:接收到数据资源后,根据所述缓存配置模块配置的数据资源的缓存容量,判断当前缓存的数据资源的数据量是否达到所述缓存容量上限,若未达到,则根据获取到的资源缓存策略指示执行相应资源缓存策略的缓存模块对接收到的数据资源进行缓存。
进一步地,缓存管理模块42还用于:若判断当前缓存的数据资源的数据量达到所述缓存容量上限,则放弃指示缓存模块对接收到的数据资源进行缓存;或者,根据数据资源的缓存时间释放部分缓存的数据资源之后,根据获取到的资源缓存策略指示执行相应资源缓存策略的缓存模块对接收到的数据资源进行缓存。
优选地,所述缓存配置模块为一个应用配置的资源缓存策略包括:
第一资源缓存策略,定义缓存该应用的所有数据资源;或者,
第二资源缓存策略,定义缓存该应用的指定部分的数据资源;或者,
第三资源缓存策略,定义针对初次接收到的该应用的数据资源进行缓存。
其中,第一缓存模块43采用第一资源缓存策略进行数据资源缓存,第二缓存模块44采用第二资源缓存策略进行数据资源缓存,第三缓存模块45采用第三资源缓存策略进行资源缓存。
其中,缓存管理模块42具体用于:
若获取到的资源缓存策略为第一资源缓存策略,则指示第一缓存模块进行数据资源缓存;若获取到的资源缓存策略为第二资源缓存策略,则指示第二缓存模块进行数据资源缓存;若获取到的资源缓存策略为第三资源缓存策略,则指示第三缓存模块进行数据资源缓存。
其中,所述第二资源缓存策略,具体用于定义缓存网页中的局部页面内容或网页所使用的公用文件中的一种或组合。
优选地,缓存配置模块41可具体用于:根据应用的类别、数据资源开销、使用频次中的一种或组合,为所述应用配置数据资源缓存策略。
优选地,所述缓存配置模块41还可用于:根据所述应用的状态变化,对所述应用对应的数据资源缓存策略进行更新。
进一步地,如图5所示,还可包括:网络状态上报模块46和/或设备状态上报模块47;
网络状态上报模块46,用于统计并向缓存管理模块42上报网络状态;
设备状态上报模块47,用于统计并向缓存管理模块42上报设备运行状态。
相应地,缓存配置模块41还可用于:配置缓存管理策略,根据所述缓存配置模块配置的缓存管理策略,以及所述状态统计模块上报的网络状态和/或所述设备状态上报模块上报的设备运行状态,对缓存的数据资源进行管理和/或对所述缓存模块的缓存操作进行控制。
进一步地,缓存管理模块41还可用于:获取所述缓存模块上报的缓存时间最长的数据资源所属的应用,和/或,缓存数据量最大的应用;相应地,缓存管理模块42可具体用于:对缓存的数据资源进行管理时,优先针对缓存时间最长的数据资源所属的应用,和/或缓存数据量最大的应用,进行数据资源释放。
作为一个例子,各缓存模块可以向缓存管理模块42上报缓存时间最长的数据资源所属的应用,和/或,缓存数据量最大的应用。比如,第一缓存模块43可对采用第一资源缓存策略缓存的每个应用的数据资源,按照LRU(LeastRecently Used,近期最少使用)算法确定最近最少使用的应用,将该应用的相关信息(比如应用名称或应用ID等)上报给缓存管理模块42。各缓存模块可按照设定周期或时间进行上报。相应地,缓存管理模块42在对缓存的数据资源进行管理时,可优先针对缓存时间最长的数据资源所属的应用进行数据资源释放,也可以优选针对缓存数据量最大的应用进行数据资源释放,也可以优选针对缓存时间最长的数据资源所属的应用以及数据量最大的应用进行数据资源释放,还可以优先针对近期最少使用的应用进行数据资源释放。当然,还可以综合考虑缓存时间、缓存数据量以及使用频次,对缓存的数据资源进行释放,例如,对缓存时间较长的应用中缓存数据量最大的应用进行数据资源释放,或者对缓存数据量较大的应用中缓存时间最长的应用进行数据资源释放。
优选地,缓存管理模块42可具体用于:根据所述网络状态上报模块上报的网络状态和/或所述设备状态上报模块上报的设备运行状态,确定缓存管理等级;根据确定出的缓存管理等级,采用相应等级对应的缓存管理策略,对缓存的数据资源进行管理和/或对所述缓存模块的缓存操作进行控制。
优选地,缓存管理模块42可具体用于通过以下操作之一或任意组合,对缓存的数据资源进行管理和/或对所述缓存模块的缓存操作进行控制:
第一释放操作,所述第一释放操作包括:针对采用第一资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第一资源缓存策略定义缓存该应用的所有数据资源;
第二释放操作,所述第二释放操作包括:针对采用第二资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第二资源缓存策略定义缓存该应用的部分数据资源;
第三释放操作,所述第三释放操作包括:针对采用第三资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第三资源缓存策略定义针对初次接收到的该应用的数据资源进行缓存。
优选地,缓存管理模块42可具体用于通过以下操作之一或任意组合,对缓存操作进行控制:
停止或恢复通过第一缓存模块进行数据资源缓存,所述第一缓存模块采用所述第一资源缓存策略进行数据资源缓存;
停止或恢复通过第二缓存模块进行数据资源缓存,所述第二缓存模块采用所述第二资源缓存策略进行数据资源缓存;
停止或恢复通过第三缓存模块进行数据资源缓存,所述第三缓存模块采用所述第三资源缓存策略进行数据资源缓存。
其中,缓存管理模块42可具体用于:若根据所述网络状态上报模块上报的网络状态和/或所述设备状态上报模块上报的设备运行状态,确定缓存管理等级为最高等级,则:执行所述第一释放操作,并在执行所述第一释放操作后,根据所述网络状态上报模块上报的网络状态和/或所述设备状态上报模块上报的设备运行状态,判断缓存管理等级是否为最高等级;若仍为最高等级,则执行所述第二释放操作和/或所述第三释放操作。
优选地,满足以下条件中的一种或多种组合时,缓存管理等级为最高等级:
设备内存可用容量低于设定门限;
设备CPU占用率高于设定门限;
上下行传输速率高于设定门限;
丢包率低于设定门限。
优选地,网络状态上报模块46上报的网络状态包括以下信息中的一种或任意组合:网络连接类型、上下行传输速率,丢包率。
优选地,设备状态上报模块47上报的设备运行状态包括以下信息中的一种或任意组合:设备内存可用容量,CPU占用率。
基于相同的技术构思,本申请实施例还提供了一种终端。
参见图6,为本申请实施例提供的终端的结构示意图。该终端总体来说可包括:处理器601,存储器602、显示器603。
其中,处理器601可以是通用处理器(比如微处理器或者任何常规的处理器等)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。存储器602具体可包括内部存储器和/或外部存储器,比如随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质。显示器603可包括触摸屏控制电路。
处理器601与其他各模块之间存在数据通信连接,比如可基于总线架构进行数据通信。总线架构可以包括任意数量的互联的总线和桥,具体由处理器601代表的一个或多个处理器和存储器802代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器601负责管理总线架构和通常的处理,存储器602可以存储处理器601在执行操作时所使用的数据。
本申请实施例揭示的数据资源管理流程,可以应用于处理器601中,或者由处理器601实现。在实现过程中,图片搜索流程的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
具体地,处理器601,耦合到存储器602,用于读取存储器602存储的计算机程序指令,并作为响应,执行如下操作:
接收数据资源;
根据所述数据资源所属的应用获取所述应用对应的资源缓存策略;其中,预先为应用配置资源缓存策略,为一个应用配置的资源缓存策略为N种资源缓存策略中的一种,N为大于1的整数;
根据获取到的资源缓存策略对接收到的数据资源进行缓存。
优选地,处理器601在根据获取到的资源缓存策略对接收到的数据资源进行缓存时,可根据预先配置的数据资源的缓存容量上限,判断当前缓存的数据资源的数据量是否达到所述缓存容量上限;若未达到,则根据获取到的资源缓存策略对接收到的数据资源进行缓存。
进一步地,处理器601若判断当前缓存的数据资源的数据量达到所述缓存容量上限,则还放弃对接收到的数据资源进行缓存;或者,根据数据资源的缓存时间释放部分缓存的数据资源之后,根据获取到的资源缓存策略对接收到的数据资源进行缓存。
其中,一个应用对应的资源缓存策略包括:
第一资源缓存策略,定义缓存该应用的所有数据资源;或者,
第二资源缓存策略,定义缓存该应用的部分数据资源;或者,
第三资源缓存策略,定义针对初次接收到的该应用的数据资源进行缓存。
相应地,处理器601根据所述数据资源所属的应用获取所述应用对应的资源缓存策略时,若获取到的资源缓存策略为第一资源缓存策略,则缓存接收到的数据资源;若获取到的资源缓存策略为第二资源缓存策略,则在接收到的数据资源为所属应用的指定部分的数据资源的情况下,缓存接收到的数据资源;若获取到的资源缓存策略为第三资源缓存策略,则在接收到的数据资源为所属应用初次接收的数据资源的情况下,缓存接收到的数据资源。
其中,所述第二资源缓存策略,具体用于定义缓存网页中的局部页面内容或网页所使用的公用文件中的一种或组合。
优选地,所述应用对应的数据资源缓存策略是根据该应用的类别、数据资源开销、使用频次中的一种或组合,为该应用配置的。
进一步地,处理器601还可根据所述应用的状态变化,对所述应用对应的数据资源缓存策略进行更新。
优选地,处理器601还可根据预先配置的缓存管理策略以及统计得到的网络状态和/或设备运行状态,对缓存的数据资源进行管理和/或控制数据资源的缓存操作。
进一步地,处理器601还可获取缓存时间最长的数据资源所属的应用,和/或,缓存数据量最大的应用;对缓存的数据资源进行管理时,优先针对缓存时间最长的数据资源所属的应用,和/或缓存数据量最大的应用,进行数据资源释放。
优选地,处理器601根据预先配置的缓存管理策略以及统计得到的网络状态和/或设备运行状态,对缓存的数据资源进行管理和/或控制数据资源的缓存操作时,可根据统计得到的网络状态和/或设备运行状态,确定缓存管理等级;根据确定出的缓存管理等级,采用相应等级对应的缓存管理策略,对缓存的数据资源进行管理和/或对缓存操作进行控制。
优选地,处理器601对缓存的数据资源进行管理和/或对所述缓存模块的缓存操作进行控制时,可通过以下操作之一或任意组合,对缓存的数据资源进行管理和/或对所述缓存模块的缓存操作进行控制:
第一释放操作,所述第一释放操作包括:针对采用第一资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第一资源缓存策略定义缓存该应用的所有数据资源;
第二释放操作,所述第二释放操作包括:针对采用第二资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第二资源缓存策略定义缓存该应用的部分数据资源;
第三释放操作,所述第三释放操作包括:针对采用第三资源缓存策略进行数据资源缓存的所有或部分应用,释放该应用的数据资源,其中,所述第三资源缓存策略定义针对初次接收到的该应用的数据资源进行缓存。
优选地,通过以下操作之一或任意组合,对缓存操作进行控制,包括:
停止或恢复采用所述第一资源缓存策略进行数据资源缓存;
停止或恢复采用所述第二资源缓存策略进行数据资源缓存;
停止或恢复采用所述第三资源缓存策略进行数据资源缓存。
其中,处理器601对缓存的数据资源进行管理时,若根据统计得到的网络状态和/或设备运行状态,确定缓存管理等级为最高等级,则执行所述第一释放操作,并在执行所述第一释放操作后,根据获取的网络状态和/或获取的设备运行状态,判断缓存管理等级是否为最高等级;若仍为最高等级,则执行所述第二释放操作和/或所述第三释放操作。
其中,满足以下条件中的一种或多种组合时,缓存管理等级为最高等级:
设备内存可用容量低于设定门限;
设备CPU占用率高于设定门限;
上下行传输速率高于设定门限;
丢包率低于设定门限。
优选地,所述统计得到的网络状态包括以下信息中的一种或任意组合:网络连接类型、上下行传输速率,丢包率。
优选地,所述统计得到的设备运行状态包括以下信息中的一种或任意组合:设备内存可用容量,CPU占用率。
综上所述,本申请实施例可最大化提升运行性能,尤其针对无网络连接情况下,互联网应用可使用缓存的数据资源,避免了该中情况下无法使用互联网应用的问题。此外,本申请实施例支持多种资源缓存策略(全缓存、部分缓存等),并支持根据网络状态、设备内存/CPU状态等动态调整缓存(比如释放缓存的数据资源),从而可最大化平衡性能和内存使用。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。