CN104808952B - 数据缓存方法及装置 - Google Patents

数据缓存方法及装置 Download PDF

Info

Publication number
CN104808952B
CN104808952B CN201510223929.5A CN201510223929A CN104808952B CN 104808952 B CN104808952 B CN 104808952B CN 201510223929 A CN201510223929 A CN 201510223929A CN 104808952 B CN104808952 B CN 104808952B
Authority
CN
China
Prior art keywords
data
caching
visited
picture
application program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510223929.5A
Other languages
English (en)
Other versions
CN104808952A (zh
Inventor
韩叙东
刘思音
雷志海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510223929.5A priority Critical patent/CN104808952B/zh
Publication of CN104808952A publication Critical patent/CN104808952A/zh
Application granted granted Critical
Publication of CN104808952B publication Critical patent/CN104808952B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种数据缓存方法及装置。其中,所述方法包括:将应用程序的待访问数据加载至缓存,并进行访问;在结束对所述数据的访问时,在所述缓存中保留所述数据;监测所述缓存的属性和/或所述数据的属性,并根据设定规则对所述缓存中的数据进行清除。本发明实施例提供的技术方案,可以加快后续对数据的访问时间,减少内存占用。

Description

数据缓存方法及装置
技术领域
本发明实施例涉及计算机技术领域,尤其涉及数据缓存方法及装置。
背景技术
现有的应用程序在进行本地图片加载过程中,通常涉及如下三种加载方式:
第一种方式[UIImage imageNamed:]是,将本地图片加载到***内存中进行缓存并展示,当应用程序退出时,清除缓存;
第二种方式[UIImage imageWithContentsOfFile:]是,直接将本地图片作为文件来读取和展示,并不缓存,即直接加载图片,不缓存,等之后再次加载该图片时仍旧直接读取该图片文件并展示,不缓存;
第三种方式[UIImage imageWithData:]是,先将本地图片的格式转换为数据格式,再进行加载和展示,该方式也不执行缓存操作,等之后再次加载该图片时仍旧先将图片格式转换为数据格式再进行加载和展示,不缓存。
现有的应用程序对网络图片的加载方式是:将网络图片数据下载到***内存中,并加载显示该图片;当不再持有该图片内存时,该块内存会被***回收;被回收后,当再次访问该网络图片时,会重新下载网络图片数据并加载显示该网络图片。
但是,上述对本地图片的三种加载方式均存在一定弊端。具体的,对于第一种方式而言,当需要再次访问本地图片时,虽然可以通过直接读取缓存的方式来加快访问速度,但是始终占用***内存;对于第二种方式和第三种方式而言,虽然对***内存的占用较少,可以及时释放内存,但是再次访问本地图片时的速度较慢,尤其是第三种方式需要耗用额外的内存来进行格式转换,以及额外的格式转换时间。另外,对网络图片的加载方式也存在再次访问时间较长的问题。
发明内容
本发明实施例提供一种数据缓存方法及装置,以加快后续对数据的访问时间,减少内存占用。
一方面,本发明实施例提供了一种数据缓存方法,该方法包括:
将应用程序的待访问数据加载至缓存,并进行访问;
在结束对所述数据的访问时,在所述缓存中保留所述数据;
监测所述缓存的属性和/或所述数据的属性,并根据设定规则对所述缓存中的数据进行清除。
另一方面,本发明实施例还提供了一种数据缓存装置,该装置包括:
数据缓存及访问单元,用于将应用程序的待访问数据加载至缓存,并进行访问;
数据保留单元,用于在结束对所述数据的访问时,在所述缓存中保留所述数据;
数据清除单元,用于监测所述缓存的属性和/或所述数据的属性,并根据设定规则对所述缓存中的数据进行清除。
本发明实施例提供的技术方案,在结束一次数据访问之后并未立即清除该数据,而是在缓存中继续保留该数据,等到后续再次访问该数据时,直接从缓存中读取该数据,从而加快了数据访问时间,同时也可以基于设定策略进行缓存数据的清除,这样可避免持续占用过多的内存空间。
附图说明
图1是本发明实施例一提供的一种数据缓存方法的流程示意图;
图2是分别以现有技术中的三种本地图片加载方式加载100张不同图片的内存占用分布示意图;
图3是分别在上述三种加载方式下访问100次同一张图片所占用的时间分布示意图;
图4是本发明实施例三提供的一种图片缓存方法的流程示意图;
图5是本发明实施例四提供的数据缓存装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的各幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
实施例一
图1是本发明实施例一提供的一种数据缓存方法的流程示意图。本实施例可适用于对诸如智能手机、平板电脑、笔记本电脑、台式电脑或个人数字助理之类的终端设备所访问的数据进行缓存管理的情况,以加快后续数据访问时间,减少对内存的占用。该方法可以由数据缓存装置来执行,所述装置由软件实现,被内置在终端设备上。参见图1,本实施例提供的数据缓存方法具体包括如下步骤:
步骤S110、将应用程序的待访问数据加载至缓存,并进行访问。
步骤S120、在结束对数据的访问时,在缓存中保留数据。
其中,待访问数据为终端设备根据当前访问需求确定的所要获取的数据,例如可以是终端设备上的应用程序在处于前台模式这一运行状态时所要访问的数据。该数据优选是图片,当然也可以是诸如音频或者视频之类的其他数据。并且,待访问数据为如下两种数据中的至少一种:存储在本地磁盘中的本地数据,以及存储在互联网中服务器上的网络数据。
在现有技术中,在获取到数据访问请求后,一类加载方案是将待访问数据加载至缓存,以缩短下次数据访问时间,但该方案并不对缓存加以管理和维护,只是一味地向缓存中增添数据,从而导致终端设备的***内存占用越来越多,带来内存吃紧的问题;另一类加载方案则并不缓存待访问数据,虽然这样不会占用内存,但在后续每一次数据访问时,均需要重新加载数据,访问时间较长,且在待访问数据为网络数据的情形下,易发生流量暴增的现象。
为此,本实施例提出一种新的改进方案:先将待访问数据从本地磁盘或者网络加载至缓存,进行访问,之后在结束该访问时,并不清除该数据,而是继续保留该数据;同时,实时地对缓存进行数据管理,以清除掉其中的一些数据,减小内存压力。本实施例能够解决现有技术中无法同时兼顾减少因加载不同数据时对内存的占用和缩短对同一数据多次访问所占用的时间的弊端。
缓存可以是内存缓存和/或磁盘缓存。其中,内存缓存为在内存中所分配的一块专门用于存储待访问数据的物理存储空间;同样,磁盘缓存为在终端设备本地磁盘上所分配的一块专门用于存储待访问数据的物理存储空间。优选的,可将属于本地数据的待访问数据加载至内存缓存,将属于网络数据的待访问数据同时加载至内存缓存及磁盘缓存中。具体的,可在内存缓存中创建两个缓存池:本地数据内存缓存池(用于维护本地数据)和网络数据内存缓存池(用于维护网络数据),在本地磁盘缓存中创建一个网络数据磁盘缓存池(用于维护网络数据)。
在本实施例的一种具体实施方式中,待访问数据为本地数据,相应的,将待访问数据加载至缓存,并进行访问,包括:如果获取到应用程序的数据访问请求,则从本地***的内存缓存中查找待访问数据;如果查找失败,从本地磁盘加载待访问数据至内存缓存中进行存储,并通过应用程序进行访问。
在本实施例的另一种具体实施方式中,待访问数据为网络数据,相应的,将待访问数据加载至缓存,并进行访问,包括:如果获取到应用程序的数据访问请求,则从本地***的内存缓存中查找待访问数据;如果查找失败,则从应用程序的磁盘缓存中查找待访问数据;如果查找失败,则从网络加载待访问数据至内存缓存和磁盘缓存中进行存储,并通过应用程序进行访问。
优选的,如果查找成功,则直接通过应用程序直接访问该数据。
步骤S130、监测缓存的属性和/或数据的属性,并根据设定规则对缓存中的数据进行清除。
其中,缓存的属性可以是缓存中数据的存储量,或者是终端设备对缓存的读写速度。数据的属性,可以是数据的种类、大小、访问频次(单位时间内的访问次数)、访问时间、在缓存中查找成功的次数(简称查找成功次数,也即命中次数)等。在本实施例中,缓存属性的监测可被视为是一种数据清除的触发检测。示例性的,在缓存中数据的存储量超过设定的容量门限值时,或者,终端设备对缓存的读写速度慢于设定的速度门限值时,根据设定规则对缓存中的数据进行清除。
当然,也可以不考虑缓存的属性,仅基于数据的属性,根据设定规则对缓存中的数据进行清除,例如实时的对数据的查找成功次数和访问时间进行监测,只要该成功次数低于设定的次数门限值,或者最近一次访问时间距离当前时刻大于设定的时间间隔,便对该数据执行清除操作。再例如,在监测到对数据的访问频次低于设定频次门限值后,清除该数据。
本实施例提供的技术方案,在结束一次数据访问之后并未立即清除该数据,而是在缓存中继续保留该数据,等到后续再次访问该数据时,直接从缓存中读取该数据,从而加快了数据访问时间,同时也可以基于设定策略进行缓存数据的清除,这样可避免持续占用过多的内存空间。
实施例二
本实施例在上述实施例一的基础上,对步骤S130做进一步优化,以能够对缓存进行及时合理的清除,减少内存占用。
在本实施例中,步骤S130优选为:监测缓存中数据的存储量,如果存储量达到设定门限值,则基于设定规则对缓存中的数据进行清除。其中,设定门限值可与终端设备的存储容量大小、处理器性能、具体的场景需求(例如有数据访问需求的应用程序种类)等因素有关,可由开发人员预先设置好,或者,在实际应用过程中由用户动态设定。
示例性的,本发明实施例提供的数据缓存方法,还包括:如果从缓存中查找待访问数据,则更新对待访问数据的访问时间和查找成功次数。具体的,每查找一次待访问数据成功后,便将该待访问数据的查找成功次数累计加1,访问时间更新为本次查找时间。则基于设定规则对缓存中的数据进行清除,包括:根据查找成功次数和访问时间,对缓存中的数据进行清除。举例而言,可将缓存中满足如下条件的数据加以清除:查找成功次数低于设定的次数门限值;和/或,最近一次访问时间距离当前时刻大于设定的时间间隔。
为更清楚的表述本实施例提供的缓存数据清除方案,现举例说明。例如,未经清除操作前,缓存中所存储的数据信息如下表1所示:
表1
数据 最近一次访问时间 查找成功次数 在缓存中的存储量
本地数据A 2016.1.1日8:00 7 2.7M
网络数据B 2016.1.1日9:03 10 0.5M
网络数据C 2016.1.1日9:06 5 1.5M
本地数据D 2016.1.1日10:21 15 1M
本地数据E 2016.1.1日10:23 2 2M
网络数据F 2016.1.1日11:30 8 0.3M
设当前时间为2016.1.1日12:00,设定的次数门限值为6,设定的时间间隔为3个小时,则可将其中查找成功次数低于6的网络数据C以及本地数据E清除,将其中最近一次访问时间距离当前时刻大于3个小时的本地数据A清除。经过本次清除操作后缓存中所存储的数据信息如下表2所示:
表2
数据 最近一次访问时间 查找成功次数 在缓存中的存储量
网络数据B 2016.1.1日9:03 10 0.5M
本地数据D 2016.1.1日10:21 15 1M
网络数据F 2016.1.1日11:30 8 0.3M
由表1和表2可见,清除前后缓存中数据的存储量分别为:2.7+0.5+1.5+1+2+0.3=8M(清除前),0.5+1+0.3=1.8M(清除后)。在对缓存执行数据清除操作后,缓存中数据的存储量减少了6.2M,所减少的存储量可被终端设备留作他用。
采用上述示例提供的缓存数据清除方案,可以及时淘汰缓存中长时间未被访问以及查找命中次数较少的数据,这样做的好处在于:能够保证缓存中所保留的数据始终为频繁使用的且命中次数较多的有效数据,可以加快后续对这些有效数据的访问时间。
当然,本领域普通技术人员应理解,还可通过其他方式基于设定规则对缓存中的数据进行清除,例如,按照设定周期(如10分钟),对缓存中存储的数据进行清除。由于该方式不涉及数据属性的监测,所以可以加快清除速度,及时释放内存。
在本发明实施例中,在待访问数据为应用程序在处于前台模式这一运行状态时所要访问的数据这一应用场景下,缓存方法还可包括:
在获取到内存警告提示或者应用程序退出前台模式后,清空缓存中存储的数据。
实施例三
随着移动互联网的飞速发展,移动端应用带来的内存吃紧和流量暴增问题越来越成为用户的痛点,而其中因加载和访问图片所造成的内存和流量问题成为了重中之重。
下面用两个实验分别说明上述背景技术部分所提到的三种加载本地图片的方式在内存占用以及访问时间方面的不同表现。
首先以加载100张不同图片到可变词典NSMutableDictionary中为例。初始状态下(未加载图片时),***内存使用为3M。当加载100张图片(同一张图片,名字不同,格式为jpg)后,背景技术中所述的第一种方式(方式1)和第二种方式(方式2)的内存使用均增长到8M,平均每张图片增加内存50K;第三种方式(方式3)的内存使用增长到10M,平均每张图片增加内存使用70K。当移除NSMutableDictionary中的所有图片(也即结束对这些图片的访问)时:第一种方式的内存使用没有减少;第二种方式和第三种方式,由于均没有缓存图片,所以内存使用会减少,具体的,第二种方式的内存占用减少到4.5M,第三种方式的内存占用减少到4M。具体如图2所示。
由此可知,在采用第一种方式加载图片时,***会缓存图片到内存中,并且内存不会随着图片对象的移除而减少。当应用程序中需要使用大量图片时,第一种方式会造成内存占用的暴涨。第二种方式和第三种方式的内存占用会随着图片对象的移除而减少。但第三种方式加载图片时会造成额外的内存增长。
然后再尝试访问100次同一张图片,记录访问占用的总时间。如图3所示。由于***对图片的缓存,第一种方式的访问时间远远少于第二种方式和第三种方式(参见图3中的类别1)。如果在应用程序内部增加一个针对该图片的缓存后(即命中缓存后直接访问已缓存的图片,否则仍使用原方式访问图片),三种方式的访问时间都大大减少了,几乎都达到了0.01s(参见图3中的类别2)。
有鉴于此,本实施例以上述所有实施例为基础,针对数据为图片的这一具体场景,提供一优选实施例。本实施例可适用于对安装有IOS***的智能手机或者平板电脑等终端设备上的应用程序所访问的图片进行缓存管理的情况,以加快图片访问时间,减少对内存的占用。该方法可以由图片缓存装置来执行,所述装置由软件实现,可作为应用程序的一部分,或者独立于应用程序,被内置在终端设备上。
本实施例提供的方案:利用缓存管理机制,缩短了重复加载图片的访问时间并减少了流量浪费;针对本地图片和网络图片对于缓存的不同要求,可制订灵活的缓存策略;当额外的缓存造成内存压力时,根据策略淘汰最久未使用和访问较少的图片缓存。该方案为移动端应用特点服务,灵活可定制,统一管理图片缓存,解决了长久以来困扰用户的移动端应用内存占用和流量问题,提高了用户体验。
在本实施例中,图片分为本地图片和网络图片两种图片。为统一管理本地图片和网络图片的缓存,灵活调整缓存策略,本实施例分别针对上述两种图片采用不同的缓存策略。
参见图4,本实施例提供的图片缓存方法具体包括如下步骤:
步骤S410、获取到应用程序的图片访问请求。
步骤S420、判断待访问图片是否为本地图片。如果是,执行步骤S430a-S470a,否则执行步骤S430b-S470b。
其中,步骤S430a-S470a为本地图片缓存方案的具体策略。在该方案中,在内存缓存中创建本地图片内存缓存池,该缓存池中维护有三个字典对象,分别是本地图片字典、访问时间字典和查找成功次数字典。在执行完步骤S410,且判断待访问图片为本地图片后,执行步骤S430a-S470a。
步骤S430a、从本地图片内存缓存池中查找是否存在待访问图片。如果是,执行步骤S450a,否则执行步骤S440a。
步骤S440a、从本地磁盘加载待访问图片至本地图片内存缓存池中进行存储。其中,加载方式可以是背景技术部分所述的第二种方式。执行步骤S450a。
步骤S450a、更新本地图片内存缓存池中对待访问图片的访问时间和查找成功次数。
步骤S460a、判断本地图片内存缓存池中数据的存储量是否达到第一设定门限值(例如5M)。如果是,则执行步骤S470a,否则执行步骤S480。
步骤S470a、根据第一策略淘汰本地图片内存缓存池中相应的图片对象,直到该缓存池中数据的存储量在第一安全值(例如1M)以下。执行步骤S480。
其中,第一策略为:优先淘汰本地图片内存缓存池中本地图片字典中查找成功次数少和访问时间较早的图片对象。具体的淘汰方法,可参见本发明实施例一和实施例二提供的对缓存中的数据进行清除的相关描述,在此不再赘述。
在获取到内存警告提示或者应用程序退出前台模式后,清空本地图片内存缓存池中的所有图片对象。
步骤S430b-S470b为网络图片缓存方案的具体策略。在该方案中,在内存缓存中创建网络图片内存缓存池,该缓存池中维护有一个网络图片字典对象。同时,在应用程序的磁盘缓存中创建网络图片磁盘缓存池。在执行完步骤S410,且判断待访问图片不是本地图片后,确定该图片为网络图片,执行步骤S430b-S470b。
步骤S430b、从网络图片内存缓存池中查找是否存在待访问图片。如果是,执行步骤S480,否则执行步骤S440b。
步骤S440b、从网络图片磁盘缓存池中查找是否存在待访问图片。如果是,执行步骤S480,否则执行步骤S450b。
步骤S450b、从网络加载待访问图片,并同时存储至网络图片内存缓存池和磁盘缓存池。
步骤S460b、判断网络图片内存缓存池中数据的存储量是否达到第二设定门限值(例如10M)。如果是,则执行步骤S470b,否则执行步骤S480。
步骤S470b、根据第二策略淘汰网络图片内存缓存池中相应的图片对象,直到该缓存池中数据的存储量在第二安全值(例如2M)以下。执行步骤S480。
其中,第二策略为:淘汰网络图片内存缓存池中所有的图片对象。优选的,可定期(如三天)清空网络图片磁盘缓存池。
在获取到内存警告提示或者应用程序退出前台模式后,清空网络图片内存缓存池中的所有图片对象。
步骤S480、返回待访问图片,以供应用程序进行访问,结束。
本实施例提供的技术方案,具备如下优点:
1、同时管理本地图片和网络图片的缓存,并能灵活调整缓存策略。
2、针对本地图片,维护本地图片的内存缓存,大大缩短了本地图片的访问时间,并能根据不同的时机淘汰相应的缓存对象,从而减少内存占用。
3、针对网络图片,维护网络图片的内存缓存和磁盘缓存,大大缩短了网络图片的访问时间,节省了流量,并能根据不同的时机淘汰相应的缓存对象,从而减少内存占用。
4、根据不同的图片类型设计了不同的淘汰策略。本地图片缓存的淘汰策略考虑了访问时间和命中次数,优先淘汰最久未使用和命中较少的缓存。
实施例四
图5是本发明实施例四提供的数据缓存装置的结构示意图。参见图5,该装置的具体结构如下:
数据缓存及访问单元510,用于将应用程序的待访问数据加载至缓存,并进行访问;
数据保留单元520,用于在结束对所述数据的访问时,在所述缓存中保留所述数据;
数据清除单元530,用于监测所述缓存的属性和/或所述数据的属性,并根据设定规则对所述缓存中的数据进行清除。
在本实施例的一种具体实施方式中,所述数据缓存及访问单元510,具体用于:
如果获取到应用程序的数据访问请求,则从本地***的内存缓存中查找待访问数据;
如果查找失败,从本地磁盘加载所述待访问数据至所述内存缓存中进行存储,并通过所述应用程序进行访问。
在本实施例的另一种具体实施方式中,所述数据缓存及访问单元510,具体用于:
如果获取到应用程序的数据访问请求,则从本地***的内存缓存中查找待访问数据;
如果查找失败,则从所述应用程序的磁盘缓存中查找待访问数据;
如果查找失败,则从网络加载所述待访问数据至所述内存缓存和磁盘缓存中进行存储,并通过所述应用程序进行访问。
示例性的,所述数据清除单元530,具体用于:监测所述缓存中数据的存储量,如果所述存储量达到设定门限值,则基于设定规则对所述缓存中的数据进行清除。
示例性的,在上述技术方案的基础上,本实施例提供的装置还包括:
更新单元540,用于如果所述数据缓存及访问单元510从所述缓存中查找待访问数据,则更新对所述待访问数据的访问时间和查找成功次数;
所述数据清除单元530,具体用于:
根据查找成功次数和访问时间,对所述缓存中的数据进行清除。
示例性的,数据清除单元530具体用于:
按照设定周期,对所述缓存中存储的数据进行清除。
示例性的,数据清除单元530,还用于:在获取到内存警告提示或者所述应用程序退出前台模式后,清空所述缓存中存储的数据。
在上述技术方案的基础上,所述待访问数据为图片数据、音频数据或者视频数据。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (13)

1.一种数据缓存方法,其特征在于,包括:
将应用程序的待访问数据加载至缓存,并进行访问;
在结束对所述数据的访问时,在所述缓存中保留所述数据;
监测所述缓存的属性和/或所述数据的属性,并根据设定规则对所述缓存中的数据进行清除;
其中,所述设定规则包括:针对本地图片,淘汰本地图片内存缓存池中本地图片字典中查找成功次数少和访问时间较早的图片,直到本地图片内存缓存池中数据的存储量在第一安全值以下;针对网络图片,淘汰网络图片内存缓存池中所有的图片对象,直到网络图片内存缓存池中数据的存储量在第二安全值以下,所述第二安全值大于所述第一安全值。
2.根据权利要求1所述的方法,其特征在于,将待访问数据加载至缓存,并进行访问,包括:
如果获取到应用程序的数据访问请求,则从本地***的内存缓存中查找待访问数据;
如果查找失败,从本地磁盘加载所述待访问数据至所述内存缓存中进行存储,并通过所述应用程序进行访问。
3.根据权利要求1所述的方法,其特征在于,将待访问数据加载至缓存,并进行访问,包括:
如果获取到应用程序的数据访问请求,则从本地***的内存缓存中查找待访问数据;
如果查找失败,则从所述应用程序的磁盘缓存中查找待访问数据;
如果查找失败,则从网络加载所述待访问数据至所述内存缓存和磁盘缓存中进行存储,并通过所述应用程序进行访问。
4.根据权利要求1所述的方法,其特征在于,监测所述缓存的属性,并根据设定规则对所述缓存中的数据进行清除,包括:
监测所述缓存中数据的存储量,如果所述存储量达到设定门限值,则基于设定规则对所述缓存中的数据进行清除。
5.根据权利要求1-4任一所述的方法,其特征在于,还包括:
如果从所述缓存中查找待访问数据,则更新对所述待访问数据的访问时间和查找成功次数;
则基于设定规则对所述缓存中的数据进行清除,包括:
根据查找成功次数和访问时间,对所述缓存中的数据进行清除。
6.根据权利要求1-4任一所述的方法,其特征在于,基于设定规则对所述缓存中的数据进行清除,包括:
按照设定周期,对所述缓存中存储的数据进行清除。
7.根据权利要求1-4任一所述的方法,其特征在于,还包括:
在获取到内存警告提示或者所述应用程序退出前台模式后,清空所述缓存中存储的数据。
8.根据权利要求1-4任一所述的方法,其特征在于,所述待访问数据为图片数据、音频数据或者视频数据。
9.一种数据缓存装置,其特征在于,包括:
数据缓存及访问单元,用于将应用程序的待访问数据加载至缓存,并进行访问;
数据保留单元,用于在结束对所述数据的访问时,在所述缓存中保留所述数据;
数据清除单元,用于监测所述缓存的属性和/或所述数据的属性,并根据设定规则对所述缓存中的数据进行清除;
其中,所述设定规则包括:针对本地图片,淘汰本地图片内存缓存池中本地图片字典中查找成功次数少和访问时间较早的图片,直到本地图片内存缓存池中数据的存储量在第一安全值以下;针对网络图片,淘汰网络图片内存缓存池中所有的图片对象,直到网络图片内存缓存池中数据的存储量在第二安全值以下,所述第二安全值大于所述第一安全值。
10.根据权利要求9所述的装置,其特征在于,所述数据缓存及访问单元,具体用于:
如果获取到应用程序的数据访问请求,则从本地***的内存缓存中查找待访问数据;
如果查找失败,从本地磁盘加载所述待访问数据至所述内存缓存中进行存储,并通过所述应用程序进行访问。
11.根据权利要求9所述的装置,其特征在于,所述数据缓存及访问单元,具体用于:
如果获取到应用程序的数据访问请求,则从本地***的内存缓存中查找待访问数据;
如果查找失败,则从所述应用程序的磁盘缓存中查找待访问数据;
如果查找失败,则从网络加载所述待访问数据至所述内存缓存和磁盘缓存中进行存储,并通过所述应用程序进行访问。
12.根据权利要求9所述的装置,其特征在于,所述数据清除单元,具体用于:监测所述缓存中数据的存储量,如果所述存储量达到设定门限值,则基于设定规则对所述缓存中的数据进行清除。
13.根据权利要求9-12任一所述的装置,其特征在于,还包括:
更新单元,用于如果所述数据缓存及访问单元从所述缓存中查找待访问数据,则更新对所述待访问数据的访问时间和查找成功次数;
所述数据清除单元,具体用于:
根据查找成功次数和访问时间,对所述缓存中的数据进行清除。
CN201510223929.5A 2015-05-05 2015-05-05 数据缓存方法及装置 Active CN104808952B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510223929.5A CN104808952B (zh) 2015-05-05 2015-05-05 数据缓存方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510223929.5A CN104808952B (zh) 2015-05-05 2015-05-05 数据缓存方法及装置

Publications (2)

Publication Number Publication Date
CN104808952A CN104808952A (zh) 2015-07-29
CN104808952B true CN104808952B (zh) 2018-09-18

Family

ID=53693814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510223929.5A Active CN104808952B (zh) 2015-05-05 2015-05-05 数据缓存方法及装置

Country Status (1)

Country Link
CN (1) CN104808952B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354088B (zh) * 2015-09-29 2018-11-27 广州酷狗计算机科技有限公司 消息删除方法及装置
CN105279267A (zh) * 2015-10-23 2016-01-27 广州视睿电子科技有限公司 一种数据缓存方法和装置
CN105335520B (zh) * 2015-11-24 2018-11-16 交控科技股份有限公司 一种基于地铁综合自动化***的数据处理方法及处理器
CN105589926A (zh) * 2015-11-27 2016-05-18 深圳市美贝壳科技有限公司 一种移动终端实时清理缓存文件的方法
CN105513005B (zh) * 2015-12-02 2019-01-29 魅族科技(中国)有限公司 一种内存管理的方法及终端
CN105786723A (zh) * 2016-03-14 2016-07-20 深圳创维-Rgb电子有限公司 基于链表的应用缓存管理方法及装置
CN106569894A (zh) * 2016-10-11 2017-04-19 北京元心科技有限公司 图片加载方法和***
CN106951550B (zh) * 2017-03-27 2020-06-05 Oppo广东移动通信有限公司 数据处理方法、装置及移动终端
CN107122247B (zh) * 2017-04-27 2021-11-02 腾讯科技(深圳)有限公司 一种静态占用图片的检测方法和装置
CN110018912A (zh) * 2018-01-10 2019-07-16 武汉斗鱼网络科技有限公司 具备通知功能的数据缓存方法、存储介质、设备及***
CN108733489A (zh) * 2018-05-11 2018-11-02 五八同城信息技术有限公司 数据处理方法、装置、电子设备和存储介质
CN111159240A (zh) * 2020-01-03 2020-05-15 中国船舶重工集团公司第七0七研究所 一种基于电子海图的高效数据缓存处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833512A (zh) * 2010-04-22 2010-09-15 中兴通讯股份有限公司 一种内存回收方法及其装置
CN102368258A (zh) * 2011-09-30 2012-03-07 广州市动景计算机科技有限公司 一种网页页面缓存管理方法及其***
CN103281397A (zh) * 2013-06-13 2013-09-04 苏州联讯达软件有限公司 一种基于时间戳和访问密度的数据缓存方法及***
CN103631616A (zh) * 2013-08-28 2014-03-12 广州品唯软件有限公司 图片快速加载及缓存方法与***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833512A (zh) * 2010-04-22 2010-09-15 中兴通讯股份有限公司 一种内存回收方法及其装置
CN102368258A (zh) * 2011-09-30 2012-03-07 广州市动景计算机科技有限公司 一种网页页面缓存管理方法及其***
CN103281397A (zh) * 2013-06-13 2013-09-04 苏州联讯达软件有限公司 一种基于时间戳和访问密度的数据缓存方法及***
CN103631616A (zh) * 2013-08-28 2014-03-12 广州品唯软件有限公司 图片快速加载及缓存方法与***

Also Published As

Publication number Publication date
CN104808952A (zh) 2015-07-29

Similar Documents

Publication Publication Date Title
CN104808952B (zh) 数据缓存方法及装置
US9779127B2 (en) Integrating database management system and external cache
US9201810B2 (en) Memory page eviction priority in mobile computing devices
US20150317246A1 (en) Memory Reclamation Method and Apparatus
CN105760199B (zh) 一种应用资源加载方法及其设备
CN107943718B (zh) 一种清理缓存文件的方法和装置
CN108363813A (zh) 数据存储方法、装置和***
CN103607312A (zh) 用于服务器***的数据请求处理方法及***
CN110209341B (zh) 一种数据写入方法、装置和存储设备
US20170308546A1 (en) File storage method and electronic device
EP3860043A2 (en) Method and apparatus for implementing smart contract based on blockchain
CN106649654A (zh) 一种数据更新的方法和装置
CN109408149A (zh) 应用程序的启动方法、装置、设备以及存储介质
CN108196972A (zh) 一种应用软件的修复方法、装置、终端及存储介质
CN108205559B (zh) 一种数据管理方法及其设备
CN112286559A (zh) 一种车载智能终端的升级方法及装置
CN113127430A (zh) 镜像信息处理方法、装置、计算机可读介质及电子设备
CN103279562B (zh) 一种用于数据库二级缓存的方法、装置及数据库存储***
CN102202129B (zh) 实现手机操作***加载的方法
CN115237826A (zh) 应用缓存自动清理方法及相关设备
CN114490432A (zh) 内存处理方法、装置、电子设备和计算机可读存储介质
CN111176557B (zh) 数据读取、存储方法和数据读取、存储装置
US20150347042A1 (en) Apparatus and method for controlling memory
CN111177091B (zh) 基于xfs文件***录像预分配存储方法、***及存储介质
CN111625239B (zh) Spa中更新虚拟页面实例状态的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant