CN110990611B - 图片缓存方法、装置、电子设备及存储介质 - Google Patents
图片缓存方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110990611B CN110990611B CN201911222001.XA CN201911222001A CN110990611B CN 110990611 B CN110990611 B CN 110990611B CN 201911222001 A CN201911222001 A CN 201911222001A CN 110990611 B CN110990611 B CN 110990611B
- Authority
- CN
- China
- Prior art keywords
- picture
- preset
- page
- loaded
- container
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/54—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了图片缓存方法、装置、电子设备及存储介质,涉及计算机通信网络技术领域,通过在退出当前层级页面时,根据预设标记,和各所述指定图片的标识,查找预设字典容器,确定各所述指定图片的索引使用次数,按照各所述指定图片的索引使用次数,分别判断各所述指定图片是否被除所述当前层级页面外的其他层级页面加载,针对任一指定图片,如果该指定图片未被除所述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息,即时清理图片缓存信息,实现了节省内存资源的目的。
Description
技术领域
本申请涉及计算机通信网络技术领域,特别是涉及图片缓存方法、装置、电子设备及存储介质。
背景技术
为保证图片快速展示,通常做法是图片从网络下载存储到磁盘,再加载到内存,在下次图片重复使用时可以直接从内存中获取,节省了下载的时间和从磁盘加载到内存的时间,提高了效率,但是存在一个弊端,这种做法会导致图片源源不断的存放在内存中,直到达到峰值或者收到系统内存警告,才会释放内存。
总之,通常做法会造成大量无用的图片常驻内存,耗费宝贵的内存资源。
发明内容
本申请实施例的目的在于提供一种图片缓存方法、装置、电子设备、存储介质及包含指令的计算机程序产品,以实现节省内存资源。
具体技术方案如下:
第一方面,本申请实施例提供了一种图片缓存方法,所述方法包括:
在退出当前层级页面时,查找预设数组容器,确定目标预设标记后的各图片的标识,得到各指定图片的标识,其中,所述预设数组容器中存储有预设标记及各页面加载的图片的标识,所述预设标记用于隔离不同层级的页面加载的图片的标识,所述目标预设标记为隔离所述当前层级页面加载的图片的标识和上一层级页面加载的图片的标识的预设标记;
根据各所述指定图片的标识,查找预设字典容器,确定各所述指定图片的索引使用次数,其中,所述预设字典容器中存储有各所述图片的缓存信息,所述缓存信息包括各所述图片的索引使用次数和所述图片的图片信息;
按照各所述指定图片的索引使用次数,分别判断各所述指定图片是否被除所述当前层级页面外的其他层级页面加载;
针对任一指定图片,如果该指定图片未被除所述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息。
可选的,所述方法还包括:
在所述预设数组容器中,删除所述目标预设标记及所述当前层级页面加载的图片的标识。
可选的,所述方法还包括:
针对任一指定图片,如果该指定图片被除所述当前层级页面外的其他层级页面加载,在所述预设字典容器中,更新该指定图片的索引使用次数。
可选的,所述按照各所述指定图片的索引使用次数,分别判断各所述指定图片是否被除所述当前层级页面外的其他层级页面加载,包括:
根据预设算法对各所述指定图片的索引使用次数进行计算,得到各所述指定图片的索引目的值,分别比较各所述指定图片的索引目的值与预设阈值的大小,其中,针对任一指定图片,若该指定图片的索引目的值大于预设阈值,判定该指定图片被除所述当前层级页面外的其他层级页面加载,否则判定该指定图片未被除所述当前层级页面外的其他层级页面加载。
可选的,所述方法还包括:
创建数组容器和字典容器,所述数组容器用于存储图片的唯一标识,所述字典容器用于存储所述图片的缓存信息;
在加载目标页面时,在所述数组容器中添加所述预设标记;
在所述预设标记后存储所述目标页面中加载的各目标图片的标识;
针对任一目标图片,查询所述字典容器中是否存储有该目标图片的缓存信息,如果存在,更新所述字典容器中该目标图片的索引使用次数;如果不存在,在所述字典容器中添加该目标图片的缓存信息。
可选的,所述数组容器存储空间超过预设内存阈值时,按照预设规则扩展数组容器内存。
可选的,所述预设标记为空指针。
可选的,所述在所述预设标记后存储所述目标页面中加载的各目标图片的标识,包括:
在所述预设标记后将各所述目标图片的标识按顺序依次存储在所述数组容器中。
可选的,所述根据各所述指定图片的标识,查找预设字典容器,包括:
根据各所述目标图片的标识的存储顺序,从后往前依次查找所述数组容器中各所述目标图片的标识,直到查找到所述目标预设标记。
第二方面,本申请实施例提供了一种图片缓存装置,所述装置包括:
第一确定模块,用于在退出当前层级页面时,查找预设数组容器,确定目标预设标记后的各图片的标识,得到各指定图片的标识,其中,所述预设数组容器中存储有预设标记及各页面加载的图片的标识,所述预设标记用于隔离不同层级的页面加载的图片的标识,所述目标预设标记为隔离所述当前层级页面加载的图片的标识和上一层级页面加载的图片的标识的预设标记;
第二确定模块,用于根据各所述指定图片的标识,查找预设字典容器,确定各所述指定图片的索引使用次数,其中,所述预设字典容器中存储有各所述图片的缓存信息,所述缓存信息包括各所述图片的索引使用次数和所述图片信息;
判断模块,用于按照各所述指定图片的索引使用次数,分别判断各所述指定图片是否被除所述当前层级页面外的其他层级页面加载;
第一删除模块,用于针对任一指定图片,如果该指定图片未被除所述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息。
可选的,所述装置还包括:
第二删除模块,用于在所述预设数组容器中,删除所述目标预设标记及所述当前层级页面加载的图片的标识。
可选的,所述装置还包括:
更新模块,用于针对任一指定图片,如果该指定图片被除所述当前层级页面外的其他层级页面加载,在所述预设字典容器中,更新该指定图片的索引使用次数。
可选的,所述判断模块具体用于:
根据预设算法对各所述指定图片的索引使用次数进行计算,得到各所述指定图片的索引目的值,分别比较各所述指定图片的索引目的值与预设阈值的大小,其中,针对任一指定图片,若该指定图片的索引目的值大于预设阈值,判定该指定图片被除所述指定页面当前层级页面外的其他层级页面加载,否则判定该指定图片未被除所述指定页面当前层级页面外的其他层级页面加载。
可选的,所述装置还包括:
创建模块,用于创建数组容器和字典容器,所述数组容器用于存储图片的唯一标识,所述字典容器用于存储所述图片的缓存信息;
第一存储模块,用于在加载目标页面时,在所述数组容器中添加所述预设标记;
第二存储模块,用于在所述预设标记后存储所述目标页面中加载的各目标图片的标识;
查询模块,用于针对任一目标图片,查询所述字典容器中是否存储有该目标图片的缓存信息,如果存在,更新所述字典容器中该目标图片的索引使用次数;如果不存在,在所述字典容器中添加该目标图片的缓存信息。
可选的,所述数组容器存储空间超过预设内存阈值时,按照预设规则扩展数组容器内存。
可选的,所述预设标记为空指针。
可选的,所述第二存储模块具体用于:
在所述预设标记后将各所述目标图片的标识按顺序依次存储在所述数组容器中。
可选的,所述第二确定模块具体用于:
根据各所述目标图片的标识的存储顺序,从后往前依次查找所述数组容器中各所述目标图片的标识,直到查找到所述目标预设标记。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中:
所述处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的图片缓存方法。
第四方面,本申请实施例提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的图片缓存方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的图片缓存方法。
本申请实施例提供的图片缓存方法、装置、电子设备、存储介质及包含指令的计算机程序产品,通过在退出当前层级页面时,根据预设标记,和各所述指定图片的标识,查找预设字典容器,确定各所述指定图片的索引使用次数,按照各所述指定图片的索引使用次数,分别判断各所述指定图片是否被除所述当前层级页面外的其他层级页面加载,针对任一指定图片,如果该指定图片未被除所述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息,即时清理图片缓存信息,实现了节省内存资源的目的。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的图片缓存方法的一种示意图;
图2为本申请实施例的图片缓存装置的一种示意图;
图3为本申请实施例的电子设备的一种示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种图片缓存方法、装置、电子设备、存储介质及包含指令的计算机程序产品,以下分别进行说明。
本申请实施例提供了一种图片缓存方法,参见图1,图1为本申请实施例的图片缓存方法的一种示意图,包括如下步骤:
步骤110,在退出当前层级页面时,查找预设数组容器,确定目标预设标记后的各图片的标识,得到各指定图片的标识,其中,上述预设数组容器中存储有预设标记及各页面加载的图片的标识,上述预设标记用于隔离不同层级的页面加载的图片的标识,上述目标预设标记为隔离上述当前层级页面加载的图片的标识和上一层级页面加载的图片的标识的预设标记。
本申请实施例的图片缓存方法可以通过电子设备实现,具体的,该电子设备可以为用户终端,例如智能手机等。
获取一个预设数组容器,上述预设数组容器中存储有预设标记及各页面加载的图片的标识,不同层级的页面加载的图片的标识通过上述预设标记进行隔离。例如,初始化数组容器,当加载页面A时,在上述预设数组容器中存储上述预设标记,例如上述预设标记为空指针,上述预设标记在上述数组容器中存储为*null,页面A中有多个图片,将加载页面A中的多个图片的标识存储在上述预设数组容器中,例如页面A中有n个图片,将n个图片的标识cacheID_1,cacheID_2,…,cacheID_n分别存储在预设数组容器中,当从页面A进入页面B时,在预设数组容器中页面A的图片的标识之后存储上述预设标记,以使上述预设标记隔离开页面A加载的图片的标识和页面B加载的图片的标识。例如进入页面A后,在预设数组容器中存储预设标记*null,然后将n个图片的标识cacheID_1,cacheID_2,…,cacheID_n按照加载的顺序依次存储在预设数组容器中,从页面A进入页面B时,在cacheID_n之后,存储预设标记*null,然后将加载页面B中的各个图片的标识按照加载的顺序依次存储在预设数组容器中。
在退出当前层级页面时,根据上述目标预设标记,上述目标预设标记为隔离上述当前层级页面加载的图片的标识和上一层级页面加载的图片的标识的预设标记,按照图片的标识存储的顺序,按照预设规则,例如从后向前依次查找预设数组容器,直到查找到目标预设标记,或者从目标预设标记从前向后依次查找预设数组容器,或者按照一定的规则隔数查找等,确定上述当前层级页面加载的各图片的标识cacheID_1,cacheID_2,…,cacheID_n,得到各指定图片的标识cacheID_i,i∈n。为了减少工作复杂度,一般是从后向前依次查找预设数组容器,直到查找到目标预设标记为止,确认退出当前层级页面时,当前层级页面加载的图片的标识。
当退出上述当前层级页面时可以按照预设标记清理当前层级页面的缓存信息,使得所有的图片的缓存信息都跟随该当前层级页面的生命周期,当当前层级页面退出时,释放加载当前页面时添加的预设标记,即目标预设标记后的所有图片缓存信息,以达到即时清理内存的目的。
在一种可能的实施方式中,上述方法还包括:
创建数组容器和字典容器,上述数组容器用于存储图片的唯一标识,上述字典容器用于存储上述图片的缓存信息;
在加载目标页面时,在上述数组容器中添加上述预设标记;
在上述预设标记后存储上述目标页面中加载的各目标图片的标识;
针对任一目标图片,查询上述字典容器中是否存储有该目标图片的缓存信息,如果存在,更新上述字典容器中该目标图片的索引使用次数;如果不存在,在上述字典容器中添加该目标图片的缓存信息。
例如,在启动指定应用程序的时候,上述指定应用程序能够进行页面显示,则创建数组容器和字典容器,上述数组容器用于存储图片的唯一标识,上述字典容器用于存储上述图片的缓存信息。
例如,初始化数组容器,页面A中有n个图片,当加载一个页面A时,在上述预设数组容器存储n个图片的标识cacheID_1,cacheID_2,…,cacheID_n,在上述预设字典容器中相应的存储有各上述图片的缓存信息,上述缓存信息包括各上述图片的索引使用次数,例如,在上述预设字典容器中按照键值对的方式存储图片的缓存信息,其中,key为图片的标识,value为数组,其中数组包括图片被使用次数和图片的数据信息。图片的数据信息可以为二进制表示,例如图片的标识为cacheID_1的图片的图片信息表示为00000001,则在上述字典容器中储存图片的标识为cacheID_1的图片的缓存信息为,cacheID_1、1、00000001,图片的标识为cacheID_2的图片的图片信息表示为00000011,则在上述字典容器中储存图片的标识为cacheID_2的图片的缓存信息为,cacheID_2、1、00000011。
在当加载页面A之后加载页面B时,在上述预设数组容器中预设标记,例如预设标记为空指针在上述数组容器中存储预设标记为*null,获取页面B加载的图片的标识,在预设标记*null后存储页面B加载的图片的标识,针对页面B加载的任一图片P,查询上述字典容器中是否存储有图片P的缓存信息,如果存在,更新上述字典容器中该图片P的索引使用次数;如果不存在,在上述字典容器中添加该图片P的缓存信息。
例如,加载页面B,页面B加载的图片的标识为cacheID_2,cacheID_n+1,其中图片的标识为cacheID_2的图片在加载页面A时,在上述字典容器中存储有cacheID_2的缓存信息,cacheID_2、1、00000011,则更新上述字典容器中cacheID_2的索引使用次数,例如索引次数加1,字典容器中cacheID_2的缓存信息更新为cacheID_2、2、00000011,图片cacheID_n+1在页面A中未加载,假设图片cacheID_n+1的图片信息表示为00010001,则在上述字典容器中添加该图片cacheID_n+1的缓存信息,cacheID_n+1、1、00010001。
当退出上述当前层级页面时可以按照预设的标记清理当前层级页面的缓存信息,使得所有的图片缓存信息都跟随该当前层级页面的生命周期,当当前层级页面退出时,释放当前层级页面预设标记后的所有图片缓存信息,以达到即时清理内存的目的,同时可避免遗漏或重复,提高工作效率。
步骤120,根据各上述指定图片的标识,查找预设字典容器,确定各上述指定图片的索引使用次数,其中,上述预设字典容器中存储有各上述图片的缓存信息,上述缓存信息包括各上述图片的索引使用次数和上述图片的图片信息。
获取一个预设字典容器,上述预设字典容器中存储有各上述图片的缓存信息,上述缓存信息包括各上述图片的索引使用次数。例如,初始化数组容器,页面A中有n个图片,当加载一个页面A时,在上述预设数组容器存储n个图片的标识cacheID_1,cacheID_2,…,cacheID_n,在上述预设字典容器中相应的存储有各上述图片的缓存信息,上述缓存信息包括各上述图片的索引使用次数,例如,在上述预设字典容器中按照键值对的方式存储图片的缓存信息,其中,关键字key为图片的标识,值value为数组,其中数组包括图片被使用次数和图片的数据信息。图片的数据信息可以为二进制表示,例如图片的标识为cacheID_1的图片的图片信息表示为00000001,则在上述字典容器中储存图片的标识为cacheID_1的图片的缓存信息为,cacheID_1、1、00000001,图片的标识为cacheID_2的图片的图片信息表示为00000011,则在上述字典容器中储存图片的标识为cacheID_2的图片的缓存信息为,cacheID_2、1、00000011。
在当加载当前层级页面A之后加载页面B时,页面B为页面A下一层级页面,页面B变为当前层级页面,页面A变为当前层级页面即页面B的上一层级页面,在上述预设数组容器中存储上述预设标记,例如预设标记为空指针,在上述数组容器中存储为*null,获取页面B加载的图片的标识,在上述预设数组容器中存储页面B加载的图片的标识,针对页面B加载的任一图片P,查询上述字典容器中是否存储有图片P的缓存信息,如果存在,更新上述字典容器中该图片P的索引使用次数;如果不存在,在上述字典容器中添加该图片P的缓存信息。
例如,加载页面B,页面B加载的图片的标识为cacheID_2,cacheID_n+1,其中图片的标识为cacheID_2的图片在加载页面A时已被加载,在上述预设数组容器中,存储预设标记*null,在预设标记*null之后,在上述预设数组容器中按照图片加载的顺序依次存储加载的图片的标识cacheID_2,cacheID_n+1,因为在上述字典容器中存储有cacheID_2的缓存信息,cacheID_2、1、00000011,则按照预设规则更新上述字典容器中cacheID_2的索引使用次数,例如索引次数加1,则字典容器中cacheID_2的缓存信息更新为cacheID_2、2、00000011,图片cacheID_n+1在页面A中未加载,假设图片cacheID_n+1的图片信息表示为00010001,则在上述字典容器中添加该图片cacheID_n+1的缓存信息,cacheID_n+1、1、00010001。
退出页面时,必须从最低层级页面一级一级退出,例如,当加载页面A后,从页面A跳转至页面B,则页面B是页A的下一层级页面,则,必须先退出页面B,才能退出页面A。根据各图片的标识,查找预设字典容器,确定各图片的索引使用次数。例如,页面B为当前层级页面,退出上述页面B时,在预设字典容器中查找图片的标识为cacheID_2的图片缓存信息,cacheID_2、2、00000011,确定图片的标识为cacheID_2图片的索引使用次数为2,在预设字典容器中查找图片的标识为cacheID_n+1的图片缓存信息,cacheID_n+1、1、00010001,确定图片的标识为cacheID_n+1图片的索引使用次数为1。
步骤130,按照各上述指定图片的索引使用次数,分别判断各上述指定图片是否被除上述当前层级页面外的其他层级页面加载。
例如,退出上述页面B时,在预设字典容器中查找图片的标识为cacheID_n+1的图片缓存信息,cacheID_n+1、1、00010001,确定图片的标识为cacheID_n+1图片的索引使用次数为1,在预设字典容器中查找图片的标识为cacheID_2的图片缓存信息,cacheID_2、2、00000011,确定图片的标识为cacheID_2图片的索引使用次数为2。则确定图片的标识为cacheID_n+1的图片没有被除上述当前层级页面外的其他层级页面加载,确定图片的标识为cacheID_2的图片被除上述当前层级页面外的其他层级页面加载。
步骤140,针对任一指定图片,如果该指定图片未被除上述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息。
例如,退出上述页面B时,在预设字典容器中查找图片的标识为cacheID_n+1的图片缓存信息,cacheID_n+1、1、00010001,确定图片的标识为cacheID_n+1图片的索引使用次数为1,确定图片的标识为cacheID_n+1的图片没有被除上述当前层级页面外的其他层级页面加载,,则将上述字典容器中删除图片的标识为cacheID_n+1的图片的缓存信息,即将缓存信息cacheID_n+1、1、00010001删除。
通过在退出当前层级页面时,根据上述预设标记,和各上述指定图片的标识,查找预设字典容器,确定各上述指定图片的索引使用次数,按照各上述指定图片的索引使用次数,分别判断各上述指定图片是否被除上述当前层级页面外的其他层级页面加载,针对任一指定图片,如果该指定图片未被除上述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息,即时清理图片缓存信息,实现了节省内存资源的目的。
在一种可能的实施方式中,上述方法还包括:
在上述预设数组容器中,删除目标上述预设标记及上述当前层级页面加载的图片的标识。
例如,当退出页面A时,在上述预设数组容器中删除上述预设标记及上述当前层级页面加载的图片的标识,实现退出页面时,即时清理图片缓存信息,实现了节省内存资源的目的。
在一种可能的实施方式中,上述方法还包括:
针对任一指定图片,如果该指定图片被除上述当前层级页面外的其他层级页面加载,在上述预设字典容器中,更新该指定图片的索引使用次数。
例如,退出上述页面B时,在预设字典容器中查找图片的标识为cacheID_2的图片缓存信息,cacheID_2、2、00000011,确定图片的标识为cacheID_2图片的索引使用次数为2,确定图片的标识为cacheID_2的图片被除上述页面B外的其他层级页面加载。在上述预设字典容器中,更新该指定图片的索引使用次数,例如,将图片的标识为cacheID_2的图片的索引使用次数2减1操作,更新为1。
在一种可能的实施方式中,上述按照各上述指定图片的索引使用次数,分别判断各上述指定图片是否被除上述当前层级页面外的其他层级页面加载,包括:
根据预设算法对各上述指定图片的索引使用次数进行计算,得到各上述指定图片的索引目的值,分别比较各上述指定图片的索引目的值与预设阈值的大小,其中,针对任一指定图片,若该指定图片的索引目的值大于预设阈值,判定该指定图片被除上述当前层级页面外的其他层级页面加载,否则判定该指定图片未被除上述当前层级页面外的其他层级页面加载。
例如,设定上述预设阈值为0,将各上述指定图片的索引使用次数减1,若该指定图片的索引目的值大于0,判定该指定图片被除上述当前层级页面外的其他层级页面加载,否则判定该指定图片未被除上述当前层级页面外的其他层级页面加载。
在一种可能的实施方式中,上述数组容器存储空间超过预设内存阈值时,按照预设规则扩展数组容器内存。
例如,数组容器存储空间超过3/4的存储空间时,将数组容器的存储空间扩展到当前数组容器存储空间的2倍,这样减少内存满警告的发生。
在一种可能的实施方式中,上述预设标记为空指针。
将当前层级页面标记为空指针,当退出上述当前层级页面时可以按照预设的标记清理当前层级页面的缓存信息,使得所有的图片缓存信息都跟随该当前层级页面的生命周期,当当前层级页面退出时,释放当前层级页面预设标记后的所有图片缓存信息,以达到即时清理内存的目的。
在一种可能的实施方式中,上述在上述预设标记后存储上述目标页面中加载的各目标图片的标识,包括:
在上述预设标记后将各上述目标图片的标识按顺序依次存储在上述数组容器中。
例如,初始化数组容器,页面A中有n个图片,当加载一个页面A时,在上述预设数组容器存储预设标记*null,然后在上述预设标记后按顺序依次存储n个图片的标识cacheID_1,cacheID_2,…,cacheID_n。这样当退出页面A时,可以按照图片的标识的存储顺序按照预设规则,在上述字典容器中查找图片的缓存信息,避免遗漏或重复,提高工作效率。
在一种可能的实施方式中,上述根据各上述指定图片的标识,查找预设字典容器,包括:
根据各上述目标图片的标识的存储顺序,从后往前依次查找上述数组容器中各上述目标图片的标识,直到查找到上述目标预设标记。
当退出页面A时,可以按照图片的标识的存储顺序按照预设规则,在上述字典容器中查找图片的缓存信息,避免遗漏或重复,提高工作效率。
本申请实施例还提供了一种装置,参见图2,图2为本申请实施例的图片缓存装置的一种示意图,上述装置包括:
第一确定模块210,在退出当前层级页面时,查找预设数组容器,确定目标预设标记后的各图片的标识,得到各指定图片的标识,其中,上述预设数组容器中存储有预设标记及各页面加载的图片的标识,上述预设标记用于隔离不同层级的页面加载的图片的标识,上述目标预设标记为隔离上述当前层级页面加载的图片的标识和上一层级页面加载的图片的标识的预设标记;
第二确定模块220,用于根据各上述指定图片的标识,查找预设字典容器,确定各上述指定图片的索引使用次数,其中,上述预设字典容器中存储有各上述图片的缓存信息,上述缓存信息包括各上述图片的索引使用次数和上述图片信息;
判断模块230,用于按照各上述指定图片的索引使用次数,分别判断各上述指定图片是否被除上述当前层级页面外的其他层级页面加载;
第一删除模块240,用于针对任一指定图片,如果该指定图片未被除上述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息。
在一种可能的实施方式中,上述装置还包括:
第二删除模块,用于在上述预设数组容器中,删除目标上述预设标记及上述当前层级页面加载的图片的标识。
在一种可能的实施方式中,上述装置还包括:
更新模块,用于针对任一指定图片,如果该指定图片被除上述当前层级页面外的其他层级页面加载,在上述预设字典容器中,更新该指定图片的索引使用次数。
在一种可能的实施方式中,上述判断模块230具体用于:
根据预设算法对各上述指定图片的索引使用次数进行计算,得到各上述指定图片的索引目的值,分别比较各上述指定图片的索引目的值与预设阈值的大小,其中,针对任一指定图片,若该指定图片的索引目的值大于预设阈值,判定该指定图片被除上述指定页面当前层级页面外的其他层级页面加载,否则判定该指定图片未被除上述指定页面当前层级页面外的其他层级页面加载。
在一种可能的实施方式中,上述装置还包括:
创建模块,用于创建数组容器和字典容器,上述数组容器用于存储图片的唯一标识,上述字典容器用于存储上述图片的缓存信息;
第一存储模块,用于在加载目标页面时,在上述数组容器中添加上述预设标记;
第二存储模块,用于在上述预设标记后存储上述目标页面中加载的各目标图片的标识;
查询模块,用于针对任一目标图片,查询上述字典容器中是否存储有该目标图片的缓存信息,如果存在,更新上述字典容器中该目标图片的索引使用次数;如果不存在,在上述字典容器中添加该目标图片的缓存信息。
在一种可能的实施方式中,上述数组容器存储空间超过预设内存阈值时,按照预设规则扩展数组容器内存。
在一种可能的实施方式中,上述预设标记为空指针。
在一种可能的实施方式中,上述第二存储模块具体用于:在上述预设标记后将各上述目标图片的标识按顺序依次存储在上述数组容器中。
在一种可能的实施方式中,上述第二确定模块220具体用于:
根据各上述目标图片的标识的存储顺序,从后往前依次查找上述数组容器中各上述目标图片的标识,直到查找到上述目标预设标记。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例还提供了一种电子设备,参见图3,图3为本申请实施例的电子设备的一种示意图,包括:处理器310、通信接口320、存储器330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信;
上述存储器330,用于存放计算机程序;
上述处理器310,用于执行上述存储器330存放的计算机程序时,实现如下步骤:
在退出当前层级页面时,查找预设数组容器,确定目标预设标记后的各图片的标识,得到各指定图片的标识,其中,上述预设数组容器中存储有预设标记及各页面加载的图片的标识,上述预设标记用于隔离不同层级的页面加载的图片的标识,上述目标预设标记为隔离上述当前层级页面加载的图片的标识和上一层级页面加载的图片的标识的预设标记;
根据各上述指定图片的标识,查找预设字典容器,确定各上述指定图片的索引使用次数,其中,上述预设字典容器中存储有各上述图片的缓存信息,上述缓存信息包括各上述图片的索引使用次数和上述图片的图片信息;
按照各上述指定图片的索引使用次数,分别判断各上述指定图片是否被除上述当前层级页面外的其他层级页面加载;
针对任一指定图片,如果该指定图片未被除上述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息。
可选的,处理器310,用于执行存储器330上所存放的程序时,还可以实现上述任一图片缓存方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请实施例中,还提供了一种存储介质,该存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一上述的图片缓存方法。
在本申请实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一上述的图片缓存方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本发明实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,各个可选方案中的技术特征只要不矛盾均可组合来形成方案,这些方案均在本申请公开的范围内。诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上上述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (12)
1.一种图片缓存方法,其特征在于,所述方法包括:
在退出当前层级页面时,查找预设数组容器,确定目标预设标记后的各图片的标识,得到各指定图片的标识,其中,所述预设数组容器中存储有预设标记及各页面加载的图片的标识,所述预设标记用于隔离不同层级的页面加载的图片的标识,所述目标预设标记为隔离所述当前层级页面加载的图片的标识和上一层级页面加载的图片的标识的预设标记;
根据各所述指定图片的标识,查找预设字典容器,确定各所述指定图片的索引使用次数,其中,所述预设字典容器中存储有各所述图片的缓存信息,所述缓存信息包括各所述图片的索引使用次数和所述图片的图片信息;
按照各所述指定图片的索引使用次数,分别判断各所述指定图片是否被除所述当前层级页面外的其他层级页面加载;
针对任一指定图片,如果该指定图片未被除所述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述预设数组容器中,删除所述目标预设标记及所述当前层级页面加载的图片的标识。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对任一指定图片,如果该指定图片被除所述当前层级页面外的其他层级页面加载,在所述预设字典容器中,更新该指定图片的索引使用次数。
4.根据权利要求1所述的方法,其特征在于,所述按照各所述指定图片的索引使用次数,分别判断各所述指定图片是否被除所述当前层级页面外的其他层级页面加载,包括:
根据预设算法对各所述指定图片的索引使用次数进行计算,得到各所述指定图片的索引目的值,分别比较各所述指定图片的索引目的值与预设阈值的大小,其中,针对任一指定图片,若该指定图片的索引目的值大于预设阈值,判定该指定图片被除所述当前层级页面外的其他层级页面加载,否则判定该指定图片未被除所述当前层级页面外的其他层级页面加载。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
创建数组容器和字典容器,所述数组容器用于存储图片的唯一标识,所述字典容器用于存储所述图片的缓存信息;
在加载目标页面时,在所述数组容器中添加所述预设标记;
在所述预设标记后存储所述目标页面中加载的各目标图片的标识;
针对任一目标图片,查询所述字典容器中是否存储有该目标图片的缓存信息,如果存在,更新所述字典容器中该目标图片的索引使用次数;如果不存在,在所述字典容器中添加该目标图片的缓存信息。
6.根据权利要求1-5任一所述的方法,其特征在于,所述数组容器存储空间超过预设内存阈值时,按照预设规则扩展数组容器内存。
7.根据权利要求1-5任一所述的方法,其特征在于,所述预设标记为空指针。
8.根据权利要求5所述的方法,其特征在于,所述在所述预设标记后存储所述目标页面中加载的各目标图片的标识,包括:
在所述预设标记后将各所述目标图片的标识按顺序依次存储在所述数组容器中。
9.根据权利要求8所述的方法,其特征在于,所述根据各所述指定图片的标识,查找预设字典容器,包括:
根据各所述目标图片的标识的存储顺序,从后往前依次查找所述数组容器中各所述目标图片的标识,直到查找到所述目标预设标记。
10.一种图片缓存装置,其特征在于,所述装置包括:
第一确定模块,用于在退出当前层级页面时,查找预设数组容器,确定目标预设标记后的各图片的标识,得到各指定图片的标识,其中,所述预设数组容器中存储有预设标记及各页面加载的图片的标识,所述预设标记用于隔离不同层级的页面加载的图片的标识,所述目标预设标记为隔离所述当前层级页面加载的图片的标识和上一层级页面加载的图片的标识的预设标记;
第二确定模块,用于根据各所述指定图片的标识,查找预设字典容器,确定各所述指定图片的索引使用次数,其中,所述预设字典容器中存储有各所述图片的缓存信息,所述缓存信息包括各所述图片的索引使用次数和所述图片的图片信息;
判断模块,用于按照各所述指定图片的索引使用次数,分别判断各所述指定图片是否被除所述当前层级页面外的其他层级页面加载;
第一删除模块,用于针对任一指定图片,如果该指定图片未被除所述当前层级页面外的其他层级页面加载,删除该指定图片的缓存信息。
11.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-9中任一项所述的图片缓存方法。
12.一种存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9中任一项所述的图片缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911222001.XA CN110990611B (zh) | 2019-12-03 | 2019-12-03 | 图片缓存方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911222001.XA CN110990611B (zh) | 2019-12-03 | 2019-12-03 | 图片缓存方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990611A CN110990611A (zh) | 2020-04-10 |
CN110990611B true CN110990611B (zh) | 2023-04-21 |
Family
ID=70089651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911222001.XA Active CN110990611B (zh) | 2019-12-03 | 2019-12-03 | 图片缓存方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990611B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897617B (zh) * | 2020-08-12 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 图片加载方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343412B1 (en) * | 1999-06-24 | 2008-03-11 | International Business Machines Corporation | Method for maintaining and managing dynamic web pages stored in a system cache and referenced objects cached in other data stores |
CN203260032U (zh) * | 2012-07-31 | 2013-10-30 | 北京天神互动科技有限公司 | 一种网页资源数据实时加载系统 |
CN107766469A (zh) * | 2017-09-29 | 2018-03-06 | 北京金山安全管理系统技术有限公司 | 一种缓存处理方法和装置 |
CN108108089A (zh) * | 2016-11-24 | 2018-06-01 | 中国移动通信有限公司研究院 | 一种图片加载方法及装置 |
CN109614565A (zh) * | 2018-04-04 | 2019-04-12 | 北京京东金融科技控股有限公司 | 网页生成方法与装置 |
CN110096660A (zh) * | 2019-04-03 | 2019-08-06 | 北京字节跳动网络技术有限公司 | 用于加载页面图片的方法、装置和电子设备 |
-
2019
- 2019-12-03 CN CN201911222001.XA patent/CN110990611B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343412B1 (en) * | 1999-06-24 | 2008-03-11 | International Business Machines Corporation | Method for maintaining and managing dynamic web pages stored in a system cache and referenced objects cached in other data stores |
CN203260032U (zh) * | 2012-07-31 | 2013-10-30 | 北京天神互动科技有限公司 | 一种网页资源数据实时加载系统 |
CN108108089A (zh) * | 2016-11-24 | 2018-06-01 | 中国移动通信有限公司研究院 | 一种图片加载方法及装置 |
CN107766469A (zh) * | 2017-09-29 | 2018-03-06 | 北京金山安全管理系统技术有限公司 | 一种缓存处理方法和装置 |
CN109614565A (zh) * | 2018-04-04 | 2019-04-12 | 北京京东金融科技控股有限公司 | 网页生成方法与装置 |
CN110096660A (zh) * | 2019-04-03 | 2019-08-06 | 北京字节跳动网络技术有限公司 | 用于加载页面图片的方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110990611A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109741060B (zh) | 信息查询系统、方法、装置、电子设备及存储介质 | |
CN111143371B (zh) | 数据查询方法、装置、设备、系统及介质 | |
CN109948122B (zh) | 输入文本的纠错方法、装置及电子设备 | |
CN108228799B (zh) | 对象索引信息的存储方法及装置 | |
CN108491715B (zh) | 终端指纹库的生成方法、装置和服务器 | |
CN109213774B (zh) | 数据的存储方法及装置、存储介质、终端 | |
CN111858577A (zh) | 存储管理的方法、设备和计算机程序产品 | |
CN110990611B (zh) | 图片缓存方法、装置、电子设备及存储介质 | |
CN110321367B (zh) | 一种数据存储方法、数据查询方法及相关装置、电子设备 | |
CN117390029B (zh) | 一种表项插入方法、装置、电子设备及存储介质 | |
CN103049445B (zh) | 一种查询图片信息的方法、系统和图片状态服务器 | |
CN111221742A (zh) | 一种测试案例的更新方法、装置、存储介质和服务器 | |
CN111046106A (zh) | 缓存数据同步方法、装置、设备及介质 | |
CN110427538B (zh) | 一种数据查询方法、存储方法、装置及电子设备 | |
WO2018225314A1 (ja) | データベース管理システムおよびデータベース管理方法 | |
CN115865839B (zh) | Acl管理方法、装置、通信设备及存储介质 | |
CN110727895A (zh) | 一种敏感词发送方法、装置、电子设备及存储介质 | |
CN105653540B (zh) | 文件属性信息的处理方法和装置 | |
CN109086220B (zh) | 一种回收存储空间的方法和装置 | |
CN108376054B (zh) | 一种对标识数据进行索引的处理方法及装置 | |
CN111177155B (zh) | 消息过滤方法、系统和计算机设备 | |
CN116263770A (zh) | 基于数据库的业务数据存储方法、装置、终端设备及介质 | |
CN108804195B (zh) | 一种页面显示方法、装置、服务器及客户端 | |
CN114547094A (zh) | 一种数据查询的方法、装置及电子设备 | |
CN113326141A (zh) | 一种区块链节点的内存管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |