数据缓存方法及装置的制造方法

文档序号:8487619阅读:362来源:国知局
数据缓存方法及装置的制造方法
【技术领域】
[0001] 本发明实施例涉及计算机技术领域,尤其涉及数据缓存方法及装置。
【背景技术】
[0002] 现有的应用程序在进行本地图片加载过程中,通常涉及如下三种加载方式:
[0003] 第一种方式[Ullmage imageNamed:]是,将本地图片加载到系统内存中进行缓存 并展示,当应用程序退出时,清除缓存;
[0004] 第二种方式[Ullmage imageWithContentsOfFile:]是,直接将本地图片作为文件 来读取和展示,并不缓存,即直接加载图片,不缓存,等之后再次加载该图片时仍旧直接读 取该图片文件并展示,不缓存;
[0005] 第三种方式[Ullmage imageWithData:]是,先将本地图片的格式转换为数据格 式,再进行加载和展示,该方式也不执行缓存操作,等之后再次加载该图片时仍旧先将图片 格式转换为数据格式再进行加载和展示,不缓存。
[0006] 现有的应用程序对网络图片的加载方式是:将网络图片数据下载到系统内存中, 并加载显示该图片;当不再持有该图片内存时,该块内存会被系统回收;被回收后,当再次 访问该网络图片时,会重新下载网络图片数据并加载显示该网络图片。
[0007] 但是,上述对本地图片的三种加载方式均存在一定弊端。具体的,对于第一种方式 而言,当需要再次访问本地图片时,虽然可以通过直接读取缓存的方式来加快访问速度,但 是始终占用系统内存;对于第二种方式和第三种方式而言,虽然对系统内存的占用较少,可 以及时释放内存,但是再次访问本地图片时的速度较慢,尤其是第三种方式需要耗用额外 的内存来进行格式转换,以及额外的格式转换时间。另外,对网络图片的加载方式也存在再 次访问时间较长的问题。

【发明内容】

[0008] 本发明实施例提供一种数据缓存方法及装置,以加快后续对数据的访问时间,减 少内存占用。
[0009] 一方面,本发明实施例提供了一种数据缓存方法,该方法包括:
[0010] 将应用程序的待访问数据加载至缓存,并进行访问;
[0011] 在结束对所述数据的访问时,在所述缓存中保留所述数据;
[0012] 监测所述缓存的属性和/或所述数据的属性,并根据设定规则对所述缓存中的数 据进行清除。
[0013] 另一方面,本发明实施例还提供了一种数据缓存装置,该装置包括:
[0014] 数据缓存及访问单元,用于将应用程序的待访问数据加载至缓存,并进行访问;
[0015] 数据保留单元,用于在结束对所述数据的访问时,在所述缓存中保留所述数据;
[0016] 数据清除单元,用于监测所述缓存的属性和/或所述数据的属性,并根据设定规 则对所述缓存中的数据进行清除。
[0017] 本发明实施例提供的技术方案,在结束一次数据访问之后并未立即清除该数据, 而是在缓存中继续保留该数据,等到后续再次访问该数据时,直接从缓存中读取该数据,从 而加快了数据访问时间,同时也可以基于设定策略进行缓存数据的清除,这样可避免持续 占用过多的内存空间。
【附图说明】
[0018] 图1是本发明实施例一提供的一种数据缓存方法的流程示意图;
[0019] 图2是分别以现有技术中的三种本地图片加载方式加载100张不同图片的内存占 用分布不意图;
[0020] 图3是分别在上述三种加载方式下访问100次同一张图片所占用的时间分布示意 图;
[0021] 图4是本发明实施例三提供的一种图片缓存方法的流程示意图;
[0022] 图5是本发明实施例四提供的数据缓存装置的结构示意图。
【具体实施方式】
[0023] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描 述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便 于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0024] 在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成 作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但 是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新 安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。 所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0025] 还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于 附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的各幅图实际上 可以基本上同时执行或者有时可以按照相反的顺序来执行。
[0026] 实施例一
[0027] 图1是本发明实施例一提供的一种数据缓存方法的流程示意图。本实施例可适用 于对诸如智能手机、平板电脑、笔记本电脑、台式电脑或个人数字助理之类的终端设备所访 问的数据进行缓存管理的情况,以加快后续数据访问时间,减少对内存的占用。该方法可以 由数据缓存装置来执行,所述装置由软件实现,被内置在终端设备上。参见图1,本实施例提 供的数据缓存方法具体包括如下步骤:
[0028] 步骤S110、将应用程序的待访问数据加载至缓存,并进行访问。
[0029] 步骤S120、在结束对数据的访问时,在缓存中保留数据。
[0030] 其中,待访问数据为终端设备根据当前访问需求确定的所要获取的数据,例如可 以是终端设备上的应用程序在处于前台模式这一运行状态时所要访问的数据。该数据优选 是图片,当然也可以是诸如音频或者视频之类的其他数据。并且,待访问数据为如下两种数 据中的至少一种:存储在本地磁盘中的本地数据,以及存储在互联网中服务器上的网络数 据。
[0031] 在现有技术中,在获取到数据访问请求后,一类加载方案是将待访问数据加载至 缓存,以缩短下次数据访问时间,但该方案并不对缓存加以管理和维护,只是一味地向缓存 中增添数据,从而导致终端设备的系统内存占用越来越多,带来内存吃紧的问题;另一类加 载方案则并不缓存待访问数据,虽然这样不会占用内存,但在后续每一次数据访问时,均需 要重新加载数据,访问时间较长,且在待访问数据为网络数据的情形下,易发生流量暴增的 现象。
[0032] 为此,本实施例提出一种新的改进方案:先将待访问数据从本地磁盘或者网络加 载至缓存,进行访问,之后在结束该访问时,并不清除该数据,而是继续保留该数据;同时, 实时地对缓存进行数据管理,以清除掉其中的一些数据,减小内存压力。本实施例能够解决 现有技术中无法同时兼顾减少因加载不同数据时对内存的占用和缩短对同一数据多次访 问所占用的时间的弊端。
[0033] 缓存可以是内存缓存和/或磁盘缓存。其中,内存缓存为在内存中所分配的一块 专门用于存储待访问数据的物理存储空间;同样,磁盘缓存为在终端设备本地磁盘上所分 配的一块专门用于存储待访问数据的物理存储空间。优选的,可将属于本地数据的待访问 数据加载至内存缓存,将属于网络数据的待访问数据同时加载至内存缓存及磁盘缓存中。 具体的,可在内存缓存中创建两个缓存池:本地数据内存缓存池(用于维护本地数据)和网 络数据内存缓存池(用于维护网络数据),在本地磁盘缓存中创建一个网络数据磁盘缓存 池(用于维护网络数据)。
[0034] 在本实施例的一种【具体实施方式】中,待访问数据为本地数据,相应的,将待访问数 据加载至缓存,并进行访问,包括:如果获取到应用程序的数据访问请求,则从本地系统的 内存缓存中查找待访问数据;如果查找失败,从本地磁盘加载待访问数据至内存缓存中进 行存储,并通过应用程序进行访问。
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1