《双缓存数据处理方法及系统.pdf》由会员分享,可在线阅读,更多相关《双缓存数据处理方法及系统.pdf(8页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104216838A43申请公布日20141217CN104216838A21申请号201310220458322申请日20130605G06F12/0820060171申请人北京齐尔布莱特科技有限公司地址100080北京市海淀区丹棱街3号B座10层1010室72发明人李强74专利代理机构北京市盛峰律师事务所11337代理人赵建刚54发明名称双缓存数据处理方法及系统57摘要本发明提供一种双缓存数据处理方法及系统,设置第一级缓存和第二级缓存;第一级缓存按照最近访问量的高低排序所存储的数据;当向第一级缓存中存储数据导致超过最大存储量时,按照LRU算法将第一级缓存中最近最少使用的数。
2、据转移到第二级缓存,当需要下载目标数据时,首先读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据,如果存储,则直接从所述第一级缓存中下载所述目标数据;如果没有存储,则进一步判断所述第二级缓存中是否存储所述目标数据,如果存储,则从所述第二级缓存中下载所述目标数据;如果没有存储,则从网络上下载所述目标数据。能够有效减少缓存与CPU之间的交互,从而减轻CPU的处理压力;而且,还能够保证快速准确的获得所请求的资源。51INTCL权利要求书2页说明书4页附图1页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书4页附图1页10申请公布号CN104216838ACN104216。
3、838A1/2页21一种双缓存数据处理方法,其特征在于,包括以下步骤S1,设置第一级缓存和第二级缓存;其中,所述第一级缓存按照最近访问量的高低排序所存储的数据;所述第一级缓存设置最大存储量,当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;当内存空间不足时,对所述第二级缓存执行垃圾回收操作;S2,当需要下载目标数据时,首先读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据,如果存储,则直接从所述第一级缓存中下载所述目标数据;如果没有存储,则进一步判断所述第二级缓存中是否存储所述目标数据,如果存储,则从所述第二。
4、级缓存中下载所述目标数据;如果没有存储,则从网络上下载所述目标数据,然后执行S3;S3,判断所述第一级缓存所存储的数据量是否达到所述最大存储容量,如果没有达到,则将所述目标数据存入所述第一级缓存;如果达到,则将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。2根据权利要求1所述的双缓存数据处理方法,其特征在于,所述双缓存数据处理方法应用于安卓操作系统。3根据权利要求1所述的双缓存数据处理方法,其特征在于,所述目标数据为图片文件或视频文件。4根据权利要求1所述的双缓存数据处理方法,其特征在于,所述第一级缓存按强引用方式存储数据;所述第。
5、二级缓存按软引用方式存储数据。5根据权利要求1所述的双缓存数据处理方法,其特征在于,S1之后,还包括设置定时器,所述定时器按预设时间间隔清理所述第一级缓存或所述第二级缓存。6一种双缓存数据处理系统,其特征在于,包括第一级缓存,所述第一级缓存用于按照最近访问量的高低排序所存储的数据;所述第一级缓存设置最大存储量;第二级缓存,所述第二级缓存用于当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;垃圾回收器,用于当内存空间不足时,对所述第二级缓存执行垃圾回收操作;第一判断模块,用于当需要下载目标数据时,读取所述第一级缓存,判断。
6、所述第一级缓存中是否存储所述目标数据;第一下载模块,用于当所述第一判断模块判断结果为是时,直接从所述第一级缓存中下载所述目标数据;第二判断模块,用于当所述第一判断模块判断结果为否时,进一步判断所述第二级缓存中是否存储所述目标数据;第二下载模块,用于当所述第二判断模块判断结果为是时,从所述第二级缓存中下载所述目标数据;第三下载模块,用于当所述第二判断模块判断结果为否时,从网络上下载所述目标数据;第三判断模块,用于判断所述第一级缓存所存储的数据量是否达到所述最大存储容权利要求书CN104216838A2/2页3量;存储模块,用于当所述第三判断模块判断结果为否时,将所述目标数据存入所述第一级缓存;还。
7、用于当所述第三判断模块判断结果为是时,将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。权利要求书CN104216838A1/4页4双缓存数据处理方法及系统技术领域0001本发明属于数据处理技术领域,具体涉及一种双缓存数据处理方法及系统。背景技术0002缓存CACHE是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。0003缓存是介于CPU和主存之间的小容量存储器,但存取速度比主存快。目前主存容量配置几百MB的情况下,缓存的典型值是几百KB。缓存能高速地向CPU提供指令和数据,从而加快了程序的执行速度,。
8、例如,当需要下载某项资源时,从缓存中下载的速度要远高于从网络上下载的速度,从而提高用户的下载体验。0004但是,现有技术中,由于缓存容量通常较小,其存储的内容有限,因此,缓存与CPU之间需要进行频繁的数据交互,从而提高了CPU的处理压力。发明内容0005针对现有技术存在的缺陷,本发明提供一种双缓存数据处理方法,能够有效减少缓存与CPU之间的交互,从而减轻CPU的处理压力;而且,还能够保证快速准确的获得所请求的资源。0006本发明采用的技术方案如下0007本发明提供一种双缓存数据处理方法,包括以下步骤0008S1,设置第一级缓存和第二级缓存;其中,所述第一级缓存按照最近访问量的高低排序所存储的数。
9、据;所述第一级缓存设置最大存储量,当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;当内存空间不足时,对所述第二级缓存执行垃圾回收操作;0009S2,当需要下载目标数据时,首先读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据,如果存储,则直接从所述第一级缓存中下载所述目标数据;如果没有存储,则进一步判断所述第二级缓存中是否存储所述目标数据,如果存储,则从所述第二级缓存中下载所述目标数据;如果没有存储,则从网络上下载所述目标数据,然后执行S3;0010S3,判断所述第一级缓存所存储的数据量是否达到所述最大存储。
10、容量,如果没有达到,则将所述目标数据存入所述第一级缓存;如果达到,则将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。0011优选的,所述双缓存数据处理方法应用于安卓操作系统。0012优选的,所述目标数据为图片文件或视频文件。0013优选的,所述第一级缓存按强引用方式存储数据;所述第二级缓存按软引用方式存储数据。0014优选的,S1之后,还包括设置定时器,所述定时器按预设时间间隔清理所述第一说明书CN104216838A2/4页5级缓存或所述第二级缓存。0015本发明还提供一种双缓存数据处理系统,包括0016第一级缓存,所述第一级缓。
11、存用于按照最近访问量的高低排序所存储的数据;所述第一级缓存设置最大存储量;0017第二级缓存,所述第二级缓存用于当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;0018垃圾回收器,用于当内存空间不足时,对所述第二级缓存执行垃圾回收操作;0019第一判断模块,用于当需要下载目标数据时,读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据;0020第一下载模块,用于当所述第一判断模块判断结果为是时,直接从所述第一级缓存中下载所述目标数据;0021第二判断模块,用于当所述第一判断模块判断结果为否时,进一步判断所述第。
12、二级缓存中是否存储所述目标数据;0022第二下载模块,用于当所述第二判断模块判断结果为是时,从所述第二级缓存中下载所述目标数据;0023第三下载模块,用于当所述第二判断模块判断结果为否时,从网络上下载所述目标数据;0024第三判断模块,用于判断所述第一级缓存所存储的数据量是否达到所述最大存储容量;0025存储模块,用于当所述第三判断模块判断结果为否时,将所述目标数据存入所述第一级缓存;还用于当所述第三判断模块判断结果为是时,将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。0026本发明的有益效果如下0027本发明提供一种双缓存数据。
13、处理方法,能够有效减少缓存与CPU之间的交互,从而减轻CPU的处理压力;而且,还能够保证快速准确的获得所请求的资源。附图说明0028图1为本发明提供的双缓存数据处理方法的流程示意图;0029图2为本发明提供的双缓存数据处理系统的结构示意图。具体实施方式0030以下结合附图对本发明进行详细说明0031如图1所示,本发明提供一种双缓存数据处理方法,包括以下步骤0032S1,设置第一级缓存和第二级缓存;其中,第一级缓存按照最近访问量的高低排序所存储的数据;第一级缓存设置最大存储量,当向第一级缓存中存储数据导致超过最大存储量时,按照LRU算法将第一级缓存中最近最少使用的数据转移到第二级缓存;当内存空间。
14、不足时,对第二级缓存执行垃圾回收操作。说明书CN104216838A3/4页60033如果不设置第一级缓存的最大存储量,则CPU会一直向缓存中存储数据,最终会导致内存不足,即发生OOMOUTOFMEMORY,内存泄露现象。因此,本发明中,控制第一级缓存的最大存储量,例如,可以设置第一级缓存最大存储量为30,当第一级缓存存储数据量超过30时,需要将第一级缓存中存储的数据移动第二级缓存。而为了提高第一级缓存的命中率,依据“使用频繁的数据很可能在后面几条指令中频繁使用;反过来说,已经很久没有使用的页面很可能在未来较长一段时间内不会被用到”原则,本发明中,对第一级缓存采用按照最近访问量高低排序,实际应。
15、用中,可以维护一张哈希映射链接表,此链接表定义了迭代顺序,该迭代顺序优选为访问顺序,当某一个数据被新访问时,则将该被新访问的数据移到链接表的顶端,提高下一次访问该数据的检索速度。0034此外,对于第二级缓存,只有当内存空间不足时,才对其进行垃圾回收操作,待后续合适的时机再将被回收的数据重新存储到缓存中,该种设计可以增强系统设计的弹性,也能有效防止内存泄漏问题。0035实际应用中,对于第一级缓存,采用强引用的方式设计;对于第二级缓存,采用软引用的方式设计。0036S2,当需要下载目标数据时,首先读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据,如果存储,则直接从所述第一级缓存中下载所。
16、述目标数据;如果没有存储,则进一步判断所述第二级缓存中是否存储所述目标数据,如果存储,则从所述第二级缓存中下载所述目标数据;如果没有存储,则从网络上下载所述目标数据,然后执行S3;0037S3,判断所述第一级缓存所存储的数据量是否达到所述最大存储容量,如果没有达到,则将所述目标数据存入所述第一级缓存;如果达到,则将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。0038如图2所示,本发明还提供一种双缓存数据处理系统,包括0039第一级缓存,所述第一级缓存用于按照最近访问量的高低排序所存储的数据;所述第一级缓存设置最大存储量;0040。
17、第二级缓存,所述第二级缓存用于当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;0041垃圾回收器,用于当内存空间不足时,对所述第二级缓存执行垃圾回收操作;0042第一判断模块,用于当需要下载目标数据时,读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据;0043第一下载模块,用于当所述第一判断模块判断结果为是时,直接从所述第一级缓存中下载所述目标数据;0044第二判断模块,用于当所述第一判断模块判断结果为否时,进一步判断所述第二级缓存中是否存储所述目标数据;0045第二下载模块,用于当所述第二判断模块判断结。
18、果为是时,从所述第二级缓存中下载所述目标数据;0046第三下载模块,用于当所述第二判断模块判断结果为否时,从网络上下载所述目标数据;说明书CN104216838A4/4页70047第三判断模块,用于判断所述第一级缓存所存储的数据量是否达到所述最大存储容量;0048存储模块,用于当所述第三判断模块判断结果为否时,将所述目标数据存入所述第一级缓存;还用于当所述第三判断模块判断结果为是时,将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。0049综上所述,本发明提供的双缓存数据处理方法,具有以下优点00501能够有效减少缓存与CPU之间的交互,从而减轻CPU的处理压力;提高了客户端响应速度,而且,还能够保证快速准确的获得所请求的资源。00512直接通过缓存加载资源,具有快速、高效的优点,从而提高了用户体验;00523通过缓存加载资源,较少了客户端的数据加载出错情况,大大提高了应有的稳定性;00534通过缓存加载资源,一定程度上可以支持离线浏览。0054以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。说明书CN104216838A1/1页8图1图2说明书附图CN104216838A。