一种数据缓存的方法及装置转让专利

申请号 : CN201511033840.9

文献号 : CN105677483B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵智宝

申请人 : TCL集团股份有限公司

摘要 :

本发明适用于智能设备技术领域,提供了一种数据缓存的方法及装置,所述方法包括:设置网络请求的动态缓存池及其默认缓存容量,所述动态缓存池具有多层缓存结构;根据系统的运行状况获取所述动态缓存池的最佳缓存容量;当所述最佳缓存容量小于所述默认缓存容量时,分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率。本发明解决了在通过网络请求获取的资源信息缓存过多时系统的使用效率低和响应速度慢的问题,有效地提高了系统对用户操作的响应速度。

权利要求 :

1.一种数据缓存的方法,其特征在于,所述缓存方法包括:

设置网络请求的动态缓存池及其默认缓存容量,所述动态缓存池具有多层缓存结构,所述动态缓存池用于缓存通过网络请求所下载的数据信息;所述动态缓存池包括内存缓存池、硬盘缓存池;所述默认缓存容量包括内存缓存池默认容量和硬盘缓存池默认容量;其中,所述内存缓存池为系统中的内存空间;所述硬盘缓存池为系统中的硬盘空间;所述默认缓存容量为在系统的内存空间和硬盘空间足够的情况下,所述动态缓存池的最大存储容量;

根据系统的运行状况获取所述动态缓存池的最佳缓存容量,包括:获取系统中的剩余可用内存空间以及第一预设比例,计算所述剩余可用内存空间和第一预设比例的乘积,得到内存的最佳缓存容量;获取系统中的剩余可用硬盘空间以及第二预设比例,计算所述剩余可用硬盘空间和第二预设比例的乘积,得到硬盘的最佳缓存容量;所述最佳缓存容量包括内存的最佳缓存容量和硬盘的最佳缓存容量;

当所述最佳缓存容量小于所述默认缓存容量时,分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率。

2.如权利要求1所述的数据缓存的方法,其特征在于,所述内存缓存池包括第一内存缓存池和第二内存缓存池;

所述第一内存缓存池用于缓存用户界面Activity之间切换时所需的交互信息;

所述第二内存缓存池用于缓存通过网络请求所下载的协议数据的解析结果;

所述硬盘缓存池用于缓存通过网络请求所下载的协议数据以及网络请求的触发时间信息、有效时长信息。

3.如权利要求2所述的数据缓存的方法,其特征在于,所述当所述最佳缓存容量小于所述默认缓存容量时,分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率包括:当所述内存的最佳缓存容量小于所述内存缓存池默认容量时,删除所述第一内存缓存池中的交互信息,和/或删除所述第二内存缓存池中的协议数据的解析结果,以缩减所述内存缓存池的存储容量。

4.如权利要求1所述的数据缓存的方法,其特征在于,所述当所述最佳缓存容量小于所述默认缓存容量时,分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率包括:当所述硬盘的最佳缓存容量小于所述硬盘缓存池默认容量时,删除所述硬盘缓存池中的协议数据、网络请求的触发时间信息以及有效时长信息,以缩减所述硬盘缓存池的存储容量。

5.一种数据缓存的装置,其特征在于,所述装置包括:

设置模块,用于设置网络请求的动态缓存池及其默认缓存容量,所述动态缓存池具有多层缓存结构,所述动态缓存池用于缓存通过网络请求所下载的数据信息;所述动态缓存池包括内存缓存池、硬盘缓存池;所述默认缓存容量包括内存缓存池默认容量和硬盘缓存池默认容量;其中,所述内存缓存池为系统中的内存空间;所述硬盘缓存池为系统中的硬盘空间;所述默认缓存容量为在系统的内存空间和硬盘空间足够的情况下,所述动态缓存池的最大存储容量;

获取模块,用于根据系统的运行状况获取所述动态缓存池的最佳缓存容量;所述最佳缓存容量包括内存的最佳缓存容量和硬盘的最佳缓存容量;所述获取模块包括:第一获取单元,用于获取系统中的剩余可用内存空间以及第一预设比例,计算所述剩余可用内存空间和第一预设比例的乘积,得到内存的最佳缓存容量;第二获取单元,用于获取系统中的剩余可用硬盘空间以及第二预设比例,计算所述剩余可用硬盘空间和第二预设比例的乘积,得到硬盘的最佳缓存容量;

调整模块,用于当所述最佳缓存容量小于所述默认缓存容量时,分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率。

6.如权利要求5所述的数据缓存的装置,其特征在于,所述内存缓存池包括第一内存缓存池和第二内存缓存池;

所述第一内存缓存池用于缓存用户界面Activity之间切换时所需的交互信息;

所述第二内存缓存池用于缓存通过网络请求所下载的协议数据的解析结果;

所述硬盘缓存池用于缓存通过网络请求所下载的协议数据以及网络请求的触发时间信息、有效时长信息。

7.如权利要求6所述的数据缓存的装置,其特征在于,所述调整模块包括:

第一调整单元,用于当所述内存的最佳缓存容量小于所述内存缓存池默认容量时,删除所述第一内存缓存池中的交互信息,和/或删除所述第二内存缓存池中的协议数据的解析结果,以缩减所述内存缓存池的存储容量。

8.如权利要求5所述的数据缓存的装置,其特征在于,所述调整模块包括:

第二调整单元,用于当所述硬盘的最佳缓存容量小于所述硬盘缓存池默认容量时,删除所述硬盘缓存池中的协议数据、网络请求的触发时间信息以及有效时长信息,以缩减所述硬盘缓存池的存储容量。

说明书 :

一种数据缓存的方法及装置

技术领域

[0001] 本发明属于智能设备技术领域,尤其涉及一种数据缓存的方法及装置。

背景技术

[0002] 随着移动互联网时代的来临,作为客户端的智能设备与服务器之间的交互方法、交互次数越来越多。对于影视类APP,比如爱奇艺视频,每一个分类目录下都有成千上万个电影的资源信息,这些资源信息包括图片资源(比如电影海报)、协议数据(比如电影的简洁)等。嵌入式平台下无法将这些资源信息全部下载并缓存。现有技术主要缓存图片资源,而不缓存协议数据。在获取不到资源信息时,用户不能向前或向后滚动页面。若用户频繁触发网络请求,系统缓存的资源信息过多时,则系统的使用效率以及响应速度大大降低。

发明内容

[0003] 鉴于此,本发明实施例提供一种数据缓存的方法及装置,以解决现有技术在通过网络请求获取的资源信息缓存过多时系统的使用效率低和响应速度慢的问题。
[0004] 第一方面,提供了一种数据缓存的方法,所述方法包括:
[0005] 设置网络请求的动态缓存池及其默认缓存容量,所述动态缓存池具有多层缓存结构;
[0006] 根据系统的运行状况获取所述动态缓存池的最佳缓存容量;
[0007] 当所述最佳缓存容量小于所述默认缓存容量时,分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率。
[0008] 第二方面,提供了一种数据缓存的装置,所述装置包括:
[0009] 设置模块,用于设置网络请求的动态缓存池及其默认缓存容量,所述动态缓存池具有多层缓存结构;
[0010] 获取模块,用于根据系统的运行状况获取所述动态缓存池的最佳缓存容量;
[0011] 调整模块,用于当所述最佳缓存容量小于所述默认缓存容量时,分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率。
[0012] 与现有技术相比,本发明通过针对网络请求设置专门的动态缓存池及其常规存储容量,所述动态缓存池具有多层缓存结构;根据系统的运行状况获取所述动态缓存池的最佳缓存容量;当所述最佳缓存容量小于所述默认缓存容量时,则分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率;从而解决了在通过网络请求获取的资源信息缓存过多时系统的使用效率低和响应速度慢的问题,有效地提高了系统对用户操作的响应速度。

附图说明

[0013] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0014] 图1是本发明实施例提供的数据缓存的方法的实现流程图;
[0015] 图2是本发明实施例提供的数据缓存的方法中步骤S102的具体实现流程图;
[0016] 图3是本发明实施例提供的数据缓存装置的组成结构图。

具体实施方式

[0017] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0018] 本发明通过针对网络请求设置专门的动态缓存池及其常规存储容量,所述动态缓存池具有多层缓存结构;根据系统的运行状况获取所述动态缓存池的最佳缓存容量;当所述最佳缓存容量小于所述默认缓存容量时,则分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率;从而解决了在通过网络请求获取的资源信息缓存过多时系统的使用效率低和响应速度慢的问题,有效地提高了系统对用户操作的响应速度。本发明实施例还提供了相应的装置,以下分别进行详细的说明。
[0019] 图1示出了本发明实施例提供的数据缓存的方法的实现流程。
[0020] 在本发明实施例中,所述数据缓存的方法应用于智能设备,所述智能设备包括但不限于智能手机、平板电脑、智能电视机、计算机以及学习机等。
[0021] 参阅图1,所述数据缓存的方法包括:
[0022] 在步骤S101中,设置网络请求的动态缓存池及其默认缓存容量,所述动态缓存池具有多层缓存结构。
[0023] 在本发明实施例中,针对网络请求设置了专门动态缓存池,并配置所述动态缓存池的默认缓存容量。在这里,所述动态缓存池用于缓存通过网络请求所下载的数据信息,比如通过网络请求所下载的影视资源信息、主题包资源信息、书籍资源信息等。所述默认缓存容量为开发者预先设置的所述动态缓存池的缓存容量,在系统的内存空间和硬盘空间足够的情况下,所述动态缓存池的最大存储容量。
[0024] 进一步地,在本发明实施例中,所述动态缓存池具有多层缓存结构,包括内存缓存池、硬盘缓存池,相应的,所述默认缓存容量包括内存缓存池默认容量和硬盘缓存池默认容量。其中,所述内存缓存池为系统中的内存空间,包括第一内存缓存池和第二内存缓存池;所述硬盘缓存池为系统中的硬盘空间。
[0025] 进一步地,所述第一内存缓存池用于缓存用户界面Activity之间切换时所需的交互信息。
[0026] 由于在Android系统中,用户界面Activity与Activity之间进行切换时需要携带很多的跳转信息,然而Activity的Intent传值的大小是固定的,且需要跨进程进行多次拷贝完成传递,从而增加了系统的内存消耗。本发明实施例通过设置第一内存缓存池,用于临时缓存Activity与Activity之间的交互信息,能够减少跨进程的传递,并在Activity取出所述交互信息之后立即收回所述第一内存缓存池,以重复使用,有效地减少了系统的内存消耗。
[0027] 所述第二内存缓存池用于缓存通过网络请求所下载的协议数据的解析结果。
[0028] 所述硬盘缓存池用于缓存通过网络请求所下载的协议数据以及网络请求的触发时间信息、有效时长信息。
[0029] 在这里,通过所述第二内存缓存池缓存当前起的预设历史时间段内所下载的协议数据的解析结果(即对象),使得用户在快速翻滚刷新的过程,页面能够及时更新。而通过硬盘缓存池缓存通过网络请求所下载的协议数据(即文本信息)以及网络请求的触发时间信息、有效时长信息等,使得智能设备在关机后再次启动时,依然不丢失在所述硬盘缓存池中缓存的通过网络请求所下载的协议数据,使得用户还可以在页面上查看到相应已下载的数据;并且在开机时,还能够根据所述网络请求的触发时间及有效时长信息判断对应的协议数据是否有效,无效则进行删除。其中,所述有效时长信息由用户根据实际情况进行配置。
[0030] 在步骤S102中,根据系统的运行状况获取所述动态缓存池的最佳缓存容量。
[0031] 在这里,所述动态缓存池的最佳缓存容量包括内存的最佳缓存容量和硬盘的最佳缓存容量,其中,所述内存的最佳缓存容量决定了所述内存缓存池在当前系统运行状态下的实际可用的内存空间,所述硬盘的最佳缓存容量决定了所述硬盘缓存池在当前系统运行状态下的实际可用的硬盘空间。
[0032] 可选地,图2示出了本发明实施例提供的步骤S102的具体实现流程。参阅图2,所述步骤S102包括:
[0033] 在步骤S201中,获取系统中的剩余可用内存空间以及第一预设比例,计算所述剩余可用内存空间和第一预设比例的乘积,得到内存的最佳缓存容量。
[0034] 在步骤S202中,获取系统中的剩余可用硬盘空间以及第二预设比例,计算所述剩余可用硬盘空间和第二预设比例的乘积,得到硬盘的最佳缓存容量。
[0035] 在这里,所述第一预设比例和第二预设比例由开发者预先设置。示例性地,当系统中的剩余可用内存空间为100M,所述第一预设比例为0.5时,所述内存的最佳缓存容量为100M*0.5=50M。当系统中的剩余可用硬盘空间为500M,所述第一预设比例为0.7时,所述内存的最佳缓存容量为500M*0.7=350M。
[0036] 在步骤S103中,当所述最佳缓存容量小于所述默认缓存容量时,分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率。
[0037] 在本发明实施例中,分别将内存的最佳缓存容量与内存缓存池默认容量比较和将硬盘的最佳缓存容量与硬盘缓存池默认容量进行比较。
[0038] 当系统中的内存空间不足时,即当内存的最佳缓存容量小于内存缓存池默认容量时,调整内存缓存池的大小。所述步骤S103具体包括:
[0039] 当所述内存的最佳缓存容量小于所述内存缓存池默认容量时,删除所述第一内存缓存池中的交互信息,和/或
[0040] 删除所述第二内存缓存池中的协议数据的解析结果,以缩减所述内存缓存池的存储容量。
[0041] 当系统中的硬盘空间不足时,即当硬盘的最佳缓存容量小于硬盘缓存池默认容量时,调整硬盘缓存池的大小。所述步骤S103具体还包括:
[0042] 当所述硬盘的最佳缓存容量小于所述硬盘缓存池默认容量时,删除所述硬盘缓存池中的协议数据、网络请求的触发时间信息以及有效时长信息,以缩减所述硬盘缓存池的存储容量。
[0043] 在这里,当系统中的内存空间不足时,优先将所述第一内存缓存池中所存储的交互信息局部或全部删除,以缩减所述第一内存缓存池的存储容量,使得系统收回所述第一内存缓池中空余的内存空间。可选地,在进行删除时,结合LRU算法、有效时长信息等确定需要删除的交互信息。同理,可以再将所述第二内存缓存池中的协议数据的解析结果局部删除,以缩减所述第二内存缓存池的存储容量,使得系统收回所述第二内存缓存池中空余的内存空间。当系统中的硬盘空间不足时,则将所述硬盘缓存池中的协议数据、网络请求的触发时间信息以及有效时长信息局部删除,只缓存请求时间较近的网络请求对应的协议数据、网络请求的触发时间信息以及有效时长信息等,以缩减所述硬盘缓存池的存储容量,使系统收回所述硬盘缓存池中空余的硬盘空间。从而避免了用户在频繁触发网络请求,系统缓存的资源信息过多时,系统的使用效率以及响应速度低的问题,有效地解决了在资源信息缓存过多时系统的使用效率低和响应速度慢的问题,提高了系统对用户操作的响应速度。
[0044] 本发明通过针对网络请求设置专门的动态缓存池及其常规存储容量,所述动态缓存池具有多层缓存结构;根据系统的运行状况获取所述动态缓存池的最佳缓存容量;当所述最佳缓存容量小于所述默认缓存容量时,则分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率;从而解决了在通过网络请求获取的资源信息缓存过多时系统的使用效率低和响应速度慢的问题,有效地提高了系统对用户操作的响应速度。
[0045] 图3示出了本发明实施例提供的数据缓存的装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
[0046] 在本发明实施例中,所述装置用于实现上述图1或图2实施例中所述的数据缓存的方法,可以是内置于智能设备的软件单元、硬件单元或者软硬件结合的单元。所述智能设备包括但不限于智能手机、平板电脑、智能电视机、智能手表、学习机等。
[0047] 参阅图3,所述数据缓存的装置包括:
[0048] 设置模块31,用于设置网络请求的动态缓存池及其默认缓存容量,所述动态缓存池具有多层缓存结构;
[0049] 获取模块32,用于根据系统的运行状况获取所述动态缓存池的最佳缓存容量;
[0050] 调整模块33,用于当所述最佳缓存容量小于所述默认缓存容量时,分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率。
[0051] 进一步地,所述动态缓存池包括内存缓存池、硬盘缓存池;所述默认缓存容量包括内存缓存池默认容量和硬盘缓存池默认容量;
[0052] 其中,所述内存缓存池为系统中的内存空间,包括第一内存缓存池和第二内存缓存池;所述硬盘缓存池为系统中的硬盘空间;
[0053] 所述第一内存缓存池用于缓存用户界面Activity之间切换时所需的交互信息;
[0054] 所述第二内存缓存池用于缓存通过网络请求所下载的协议数据的解析结果;
[0055] 所述硬盘缓存池用于缓存通过网络请求所下载的协议数据以及网络请求的触发时间信息、有效时长信息。
[0056] 进一步地,所述最佳缓存容量包括内存的最佳缓存容量和硬盘的最佳缓存容量。
[0057] 所述获取模块32包括:
[0058] 第一获取单元321,用于获取系统中的剩余可用内存空间以及第一预设比例,计算所述剩余可用内存空间和第一预设比例的乘积,得到内存的最佳缓存容量;
[0059] 第二获取单元322,用于获取系统中的剩余可用硬盘空间以及第二预设比例,计算所述剩余可用硬盘空间和第二预设比例的乘积,得到硬盘的最佳缓存容量。
[0060] 进一步地,所述调整模块33包括:
[0061] 第一调整单元331,用于当所述内存的最佳缓存容量小于所述内存缓存池默认容量时,删除所述第一内存缓存池中的交互信息,和/或
[0062] 删除所述第二内存缓存池中的协议数据的解析结果,以缩减所述内存缓存池的存储容量。
[0063] 进一步地,所述调整模块33还包括:
[0064] 第二调整单元332,用于当所述硬盘的最佳缓存容量小于所述硬盘缓存池默认容量时,删除所述硬盘缓存池中的协议数据、网络请求的触发时间信息以及有效时长信息,以缩减所述硬盘缓存池的存储容量。
[0065] 需要说明的是,本发明实施例中的装置可以用于实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实例中的相关描述,此处不再赘述。
[0066] 本发明通过针对网络请求设置专门的动态缓存池及其常规存储容量,所述动态缓存池具有多层缓存结构;根据系统的运行状况获取所述动态缓存池的最佳缓存容量;当所述最佳缓存容量小于所述默认缓存容量时,则分别调整所述动态缓存池中每一层缓存池的缓存容量,以优化系统的使用效率;从而解决了在通过网络请求获取的资源信息缓存过多时系统的使用效率低和响应速度慢的问题,有效地提高了系统对用户操作的响应速度。
[0067] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0068] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0069] 在本申请所提供的几个实施例中,应该理解到,所揭露的数据缓存的方法及装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块、单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0070] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0071] 另外,在本发明各个实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元、模块单独物理存在,也可以两个或两个以上单元、模块集成在一个单元中。
[0072] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0073] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。