CN113254211A - 缓存分配方法、装置、电子设备及存储介质 - Google Patents
缓存分配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113254211A CN113254211A CN202110610125.6A CN202110610125A CN113254211A CN 113254211 A CN113254211 A CN 113254211A CN 202110610125 A CN202110610125 A CN 202110610125A CN 113254211 A CN113254211 A CN 113254211A
- Authority
- CN
- China
- Prior art keywords
- animation
- buffer
- frames
- image frame
- space
- 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.)
- Granted
Links
Images
Classifications
-
- 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
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例公开一种缓存分配方法、装置、电子设备及存储介质,该方法包括:确定第一动画的缓存空间初始值,所述第一动画为N个动画中的任一个,所述缓存空间初始值是将缓冲池平均分配至所述N个动画后,所述第一动画分配到的缓存容量,N为正整数,所述缓冲池的缓存容量固定;根据所述第一动画的缓存空间初始值以及所述第一动画中单个图像帧的缓存占用,确定分配至所述第一动画的缓存帧数量;根据所述缓存帧数量,从所述第一动画中识别出需要进行缓存的第一图像帧,并在所述第一动画的缓存空间中为所述第一图像帧建立缓存。实施本申请实施例,能够减少缓存池的占用波动,提高应用程序的运行稳定性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种缓存分配方法、装置、电子设备及存储介质。
背景技术
车机、手机等电子设备在播放动画时,一般需要先将动画加载至处理器。加载过程可包括:将动画中每个图像帧的图像文件读取处理器内存,再将内存中的图像文件解析成位图格式对象。动画的加载操作往往需要占用大量处理器资源,图像帧的尺寸越大,占用的处理器资源越多。
为了降低对处理器资源的占用,可先将动画中已加载的图像存储至处理器的缓存池。然而,在实践中发现,不同动画间存在图像尺寸不一致的情况,在对不同尺寸的动画进行缓存时,容易出现缓存池占用波动的问题。
发明内容
本申请实施例公开了一种用于缓存分配方法、装置、电子设备及存储介质,能够减少缓存池的占用波动。
本申请实施例公开一种缓存分配方法,所述方法包括:确定第一动画的缓存空间初始值,所述第一动画为N个动画中的任一个,所述缓存空间初始值是将缓冲池平均分配至所述N个动画后,所述第一动画分配到的缓存容量,N为正整数,所述缓冲池的缓存容量固定;根据所述第一动画的缓存空间初始值以及所述第一动画中单个图像帧的缓存占用,确定分配至所述第一动画的缓存帧数量;根据所述缓存帧数量,从所述第一动画中识别出需要进行缓存的第一图像帧,并在所述第一动画的缓存空间中为所述第一图像帧建立缓存。
本申请实施例公开一种缓存分配装置,包括:第一确定模块,用于确定第一动画的缓存空间初始值,所述第一动画为N个动画中的任一个,所述缓存空间初始值是将缓冲池平均分配至所述N个动画后,所述第一动画分配到的缓存容量,N为正整数,所述缓冲池的缓存容量固定;第二确定模块,用于根据所述第一动画的缓存空间初始值以及所述第一动画中单个图像帧的缓存占用,确定分配至所述第一动画的缓存帧数量;缓存模块,用于根据所述缓存帧数量,从所述第一动画中识别出需要进行缓存的第一图像帧,并在所述第一动画的缓存空间中为所述第一图像帧建立缓存。
本申请实施例公开一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现本申请实施例公开的任意一种缓存分配方法。
本申请实施例公开的一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本申请实施例公开的任意一种缓存分配方法。
与相关技术相比,本申请实施例具有以下有益效果:
电子设备将缓存池配置为缓存容量固定,并将缓存池平均分配至各个动画,使得N个动画可分配到的缓存空间初始值可相同。针对N个动画中的任意一个第一动画,电子设备可按照第一动画中单个图像帧的缓存占用确定分配至每个动画的缓存帧数量。再根据确定出的缓存帧数量,从第一动画中识别出需要进行缓存的第一图像帧,并在第一动画的缓存空间中为第一图像帧建立缓存。实施本申请实施例,容量固定的缓存池有利于减少由于动画尺寸的变化而导致的缓存池占用波动,从而可以提高应用程序的运行稳定性。此外,即使缓存池缓存容量固定,也可以适应不同尺寸的动画,对不同尺寸的动画进行有效缓存,从而可以充分使用缓存池提供的缓存空间,最大化缓存效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一个实施例公开的一种缓存分配方法的流程示意图;
图2是一个实施例公开的一种第一动画中缓存帧的分布状态示例图;
图3是一个实施例公开的另一种缓存分配方法的流程示意图;
图4是一个实施例公开的步骤340的一种实施方式的流程示意图;
图5是一个实施例公开的一种释放第二动画的缓存空间的实施方式的流程示意图;
图6是一个实施例公开的一种按照间隔识别出需要进行缓存释放的第二图像帧的示例图;
图7是一个实施例公开的一种增加第二动画的缓存空间的实施方式的流程示意图;
图8A是一个实施例中需要缓存的第三图像帧与已缓存第一图像帧的示例图;
图8B是另一个实施例中需要缓存的第三图像帧与已缓存第一图像帧的示例图;
图9是一个实施例公开的一种缓存分配装置的结构示意图;
图10是一个实施例公开的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
缓存池可为电子设备的操作系统在贮存中设置的一组缓冲区,具有一定的缓存空间。在相关技术中,往往是以帧数为单位对缓存池进行缓存分配。即,电子设备一般为不同的动画分配相同数量的缓存帧,动画的尺寸越大,即动画中单个图像帧的尺寸越大,该动画在缓存池中占据的缓存空间越多。因此,将不同尺寸的动画缓存至缓存池时,缓存池的缓存空间需要根据动画尺寸进行适应性调整,从而容易出现缓存池占用波动的问题。当缓存池占用出现占用波动的问题时,运行需要调用缓存池的应用程序可能会出现应用崩溃、闪退等问题,导致应用程序的运行稳定性较差。
本申请实施例公开了一种用于缓存分配方法、装置、电子设备及存储介质,能够减少缓存池的占用波动。以下分别进行详细说明。
请参阅图1,图1是一个实施例公开的一种缓存分配方法的流程示意图,该方法可适用于的车机、车载中控设备、手机等电子设备,具体不做限定。
如图1所示,该方法可以包括以下步骤:
110、确定第一动画的缓存空间初始值。
在本申请实施例中,电子设备可将缓冲池的存储空间配置为固定值,即将缓冲池的缓存容量固定。缓冲池的缓存容量可根据实际业务需求设置,例如可根据应用程序需要播放的动画数量、或者应用程序需要播放动画的频率设定,具体不做限定。
配置缓存池的缓存容量之后,电子设备可为需要缓存的N个动画分配缓存池的缓存空间,N为正整数,例如可为1、2、15等,但不限于此。上述的动画,可指按顺序排列的多个图像所组成的序列。需要缓存的N个动画,可为应用程序在运行时需要在电子设备前台展示的动画,例如点赞动画、表情动图等。或者,也可以是电子设备的相册中保存的动态图片,具体不做限定。
电子设备可将缓存池平均分配至N个动画,每个动画分配到的缓存空间容量相同。因此,针对N个动画中的任意一个第一动画,第一动画的缓存空间初始值可根据缓冲池的缓存容量和需要缓存的动画数量(N)确定。需要缓存的动画数量越多,N的值越大,第一动画的缓存空间初始值越小;需要缓存的动画越少,N的值越小,第一动画的缓存空间初始值越大。
120、根据第一动画的缓存空间初始值以及第一动画中单个图像帧的缓存占用,确定分配至第一动画的缓存帧数量。
电子设备可对分配至第一动画的缓存帧数量进行计算,分配至第一动画的缓存帧数量越多,第一动画包括的图像帧中可以被缓存的图像帧越多,第一动画可以更快加载完成。
单个图像帧的缓存占用可指对一个图像帧进行缓存需要占用的缓存空间。一般而言,同一个动画包括的各个图像帧的尺寸相同,每个图像帧的缓存占用也相同。
可选的,单个图像帧的尺寸可通过图像帧包括的像素点数量进行表示。因此,第一动画中单个图像帧的缓存占用可根据单个图像帧包括的像素点数量和单个像素点的缓存占用确定。示例性的,第一图像中单个图像帧的缓存占用A_pc可通过以下公式计算:A_pc=A_ps*P_c。其中,A_ps可为第一图像中单个图像帧包括的像素点数量,P_c可为单个像素点的缓存占用。可见,第一动画中图像帧的尺寸越大,单个图像帧占用的缓存空间越多。
电子设备可根据第一动画的缓存空间初始值以及单个图像帧的缓存占用计算缓存帧数量,计算得到的缓存帧数量可小于或等于第一动画包括的图像帧总数。示例性的,第一动画的缓存帧数量A_s可通过以下公式计算:A_s=A_c/A_pc。其中,A_c可为第一动画的缓存空间初始值,A_pc可为第一动画中单个图像帧的缓存占用。需要说明的是,第一动画的缓存帧数量A_s也可以小于A_c/A_pc,例如可为A_c/A_pc-1,具体不做限定。
可见,在各个动画的缓存空间初始值相同的情况下,第一动画中的图像尺寸越大,分配至第一动画的缓存帧数量越少;第一动画中的图像尺寸越小,分配至第一动画的缓存帧数量越多。也就是说,不同尺寸的动画分配到的缓存空间初始值可相同,但分配到的缓存帧数量可不同。
130、根据缓存帧数量,从第一动画中识别出需要进行缓存的第一图像帧,并在第一动画的缓存空间中为第一图像帧建立缓存。
电子设备可从第一动画中识别出M帧需要缓存的第一图像帧,M可为上数的缓存帧数量。示例性的,若执行步骤120确定出的缓存帧数量为3,则可从第一动画中识别出3帧图像作为第一图像帧。
此外,电子设备可按照预设规则从第一动画中识别出需要缓存的第一图像。预设规则可包括:随机选取、按间隔选取、选取第一动画的前M帧或者选取第一动画的后M帧,但不限于此。
在识别出需要缓存的第一图像帧之后,电子设备可以在第一动画对应的序列中对第一图像帧进行缓存标识。即,第一动画对应的序列中带有缓存标识的图像可为需要缓存的第一图像帧。
电子设备可以在第一动画的缓存空间中为第一图像帧建立缓存。其中,电子设备可根据第一动画的缓存帧数量,将第一动画的缓存空间划分为多个内存块,每个内存块可与一个第一图像帧对应。电子设备可以将第一图像帧的解析文件(如位图格式文件)存储在第一图像帧对应的内存块中,从而为第一图像帧建立缓存。
可见,在前述实施例中,电子设备可将缓存池配置为缓存容量固定,并将缓存池平均分配至各个动画,使得尺寸不同的动画可分配到的缓存空间初始值可相同,有利于减少由于动画尺寸的变化而导致的缓存池占用波动,从而可以提高应用程序的运行稳定性。此外,电子设备可按照动画中单个图像帧的缓存占用确定分配至每个动画的缓存帧数量,在缓存池缓存容量固定的情况下也可以适应不同尺寸的动画,对不同尺寸的动画进行有效缓存,从而可以充分使用缓存池提供的缓存空间,最大化缓存效果。
在一个实施例中,电子设备在执行前述步骤130时,可按预设间隔从第一动画中识别出需要缓存的第一图像帧。也就是说,前述步骤130中根据缓存帧数量,从第一动画中识别出需要进行缓存的第一图像帧的一种实施方式可包括以下步骤:
电子设备根据分配至第一动画的缓存帧数量,以及第一动画的图像帧总数,确定第一动画的缓存帧间隔数,并根据缓存帧间隔数从第一动画中识别出需要缓存的第一图像帧。
其中,缓存帧间隔数可指第一动画中相邻两个第一图像帧之间需要间隔的图像帧数量。示例性的,第一动画的缓存帧间隔数A_间隔可通过以下公式进行计算:A_间隔=(A_1/A_s)-1。其中,A_1可为第一动画的图像帧总数,A_s可为第一动画的缓存帧数量。假设第一动画共包括50帧图像,计算出分配至第一动画的缓存帧数量为10,则第一动画的缓存帧间隔数可为4。
电子设备在确定出第一动画的缓存帧间隔数之后,可根据缓存帧间隔数对第一动画包括的各帧图像进行缓存帧标识,以对第一图像帧进行识别。
示例性的,电子设备可遍历第一动画对应的队列,对第一动画的首帧图像进行缓存标识,将首帧图像识别为第一图像帧。在将首帧图像识别为第一图像帧之后,电子设备可间隔K1个图像帧,将首帧图像之后的第K1+1帧图像识别为第二帧第一图像帧,K1可为第一动画的缓存帧间隔数。重复上述的间隔K1个图像帧,将当前识别出的第一图像帧之后的第K1+1个图像帧识别为下一帧第一图像帧的操作,直至从第一动画中识别出的第一图像帧的数量达到分配至第一动画的缓存帧数量。
请参阅图2,图2是一个实施例公开的一种第一动画中缓存帧的分布状态示例图。如图2所示,第一动画中可包括8个图像帧,在图2中标号分别为0-7。第一动画的缓存帧数量可为4,缓存帧间隔数可为1。因此,如图2所示,第一动画中需要缓存的第一图像帧可包括标号分别为0、2、4、6的图像帧,标号为1、3、5、7的图像帧为未缓存的图像帧。
可见,在识别第一动画中的各个第一动画帧时,相邻两个第一图像帧之间间隔的图像帧数量为第一动画的缓存帧间隔数。电子设备按预设间隔从第一动画中识别出需要缓存的第一图像帧,可使第一动画中需要缓存的第一图图像帧呈均匀分布状态。动画中的各个图像帧之间存在一定的连续性,相邻两个图像帧之间的差异较小。因此,动画中标识关键状态的图像可称为关键帧。在第一动画中,需要缓存的第一图象帧呈均匀分布状态,可使第一动画的关键帧尽可能被缓存,从而可以在缓存帧数量有限的前提下最大化第一动画的缓存效果。
在前述实施例中,电子设备可将缓存池的缓存空间平均分为至N个动画。初始分配时难以预估N个动画的播放情况,平均分配则可确保N个动画中的每个动画都可分配有一定数量的缓存空间,每个动画都可以将部分或者全部图像进行缓存。在电子设备的实际运行过程中,无论哪个动画被播放,都无需逐帧加载,可以有效减少动画的加载时长,提高响应速度。
在一个实施例中,电子设备可根据N个动画中每个动画的播放情况对各个动画的缓存空间进行再分配,以优化缓存池的资源分配。请参阅图3,图3是一个实施例公开的另一种缓存分配方法的流程示意图。如图3所示,该方法可以包括以下步骤:
310、确定第一动画的缓存空间初始值。
第一动画为N个动画中的任意一个动画。电子设备可将存储空间固定的缓存池平均分配至N个动画,第一动画的初始缓存空间与N个动画中其它动画的初始缓存空间相同。
320、根据第一动画的缓存空间初始值以及第一动画中单个图像帧的缓存占用,确定分配至第一动画的缓存帧数量。
330、根据缓存帧数量,从第一动画中识别出需要进行缓存的第一图像帧,并在第一动画的缓存空间中为第一图像帧建立缓存。
步骤310-步骤330的实施方式可参见前述实施例,以下内容不再赘述。
340、根据N个动画中一个或多个动画的播放数据对分配至第二动画的缓存帧数量进行调整,以对第二动画的缓存空间进行再分配。
上述的第二动画可为N个动画中的任意一个动画,电子设备可通过如前述步骤310-步骤330所示的操作,确定分配至第二动画的缓存帧数量,并识别出第二动画需要缓存的一个或多个第一图像帧,在第二动画的缓存空间中为第一图像帧建立缓存。
电子设备可以在实际运行过程中记录N个动画中每个动画的播放数据。播放数据可包括但不限于:连续播放时长、历史播放次数、播放频率等。其中,播放频率可通过单位时长内的播放次数进行表示。示例性的,播放频率A_use可通过以下公式进行计算:A_use=播放次数/一小时。
电子设备可根据一个或多个动画的播放数据对分配至第二动画的缓存帧数量进行调整。当分配至第二动画的缓存帧数量发生改变时,第二动画的初始缓存空间也可相应改变。在分配至第二动画的缓存帧数量减少时,电子设备可以释放第二动画的缓存空间中部分或者全部的缓存空间,被释放的缓存空间可被记录为缓存池的闲置缓存空间;在分配至第二动画的缓存帧数量增加时,电子设备可以在增加第二动画的缓存空间,以使第二动画的缓存空间可对缓存更多的图像。
在一个实施例中,电子设备可根据第二动画的播放数据对分配至第二动画的缓存帧进行调整。电子设备可将第二动画的播放数据与对应的预设阈值进行比对,并根据比对结果对分配至第二动画的缓存帧进行调整。上述的预设阈值可根据实际的业务需求设置,具体不做限定。
示例性的,电子设备可将第二动画的历史播放次数与预设的播放次数阈值进行比对;若第二动画的历史播放次数高于播放次数阈值,则增加分配至第二动画的缓存帧数量;若第二动画的历史播放次数低于播放次数阈值,则减少分配至第二动画的缓存帧数量;若第二动画的历史播放次数等于播放次数阈值,则分配至第二动画的缓存帧数量可保持不变。
在一个实施例中,电子设备也可根据多个动画的播放数据对分配至第二动画的缓存帧数量进行调整。电子设备可根据多个动画的播放数据确定出多个动画的平均播放数据。参与计算平均播放数据的多个动画中可包括第二动画,也可以不包括第二动画,具体不做限定。示例性的,电子设备可计算N个动画的平均播放频率,并根据第二动画的播放频率与N个动画的平均播放频率对第二动画的缓存帧数量进行调整。
可选的,电子设备可将第二动画的播放数据与多个动画的平均播放数据进行比对,并根据比对结果对分配至第二动画的缓存帧进行调整。
示例性的,电子设备可计算N个动画的平均播放频率。若第二动画的播放频率高于N个动画的平均播放频率,则增加分配至第二动画的缓存帧数量;若第二动画的播放频率低于N个动画的平均播放频率,则减少分配至第二动画的缓存帧数量;若第二动画的播放频率等于N个动画的平均播放频率,则分配至第二动画的缓存帧数量可保持不变。
在一个实施例中,电子设备还可根据第二动画的播放数据与多个动画的平均播放数据进行计算,以计算出对第二动画的缓存帧进行调整的调整数量。请参阅图4,图4是一个实施例公开的步骤340的一种实施方式的流程示意图。如图4所示,可包括以下步骤:
410、根据第二动画的播放频率与平均播放频率的差值确定调整权重。
在本申请实施例中,平均播放频率可指N个动画的平均播放频率,可通过以下公式进行计算:A_use_平均=(A1_use+A2_use+..An_use)/N。其中,A_use_平均可为平均播放频率,A1_use可为动画A1的播放频率,A2_use可为动画A2的播放频率,An_use可为动画An的播放频率。第二动画可为上述的动画A1、A2……An中的任意一个动画。
电子设备可进一步计算第二动画的播放频率与平均播放频率的差值。可选的,电子设备可直接将该差值确定为调整权重;或者,电子设备也对差值进行一系列诸如平方、开方等计算,以根据差值计算出调整权重,具体不做限定。
420、根据调整权重、第二动画的缓存空间初始值以及平均播放频率确定第二动画的缓存空间调整量。
第二动画的缓存空间调整量可指第二动画的缓存空间需要增加或者减少缓存容量。需要说明的是,当第二动画的缓存空间调整量为0时,第二动画的缓存空间保持不变。
第二动画的缓存空间调整量可与调整权重的绝对值和缓存空间初始值呈正相关关系,与平均播放频率呈负相关关系。调整权重的绝对值和缓存空间初始值越大,第二动画的缓存空间调整量越大;平均播放频率越大,第二动画的缓存空间调整量越小。
示例性的,第二动画的缓存空间调整量A_c_rm可通过以下公式进行计算:A_c_rm=A_w*A_c/A_use_平均。其中,A_w可为调整权重,A_c可为缓存空间初始值,A_use_平均可为平均播放频率。
430、根据第二动画的缓存空间调整量以及第二动画中单个图像帧的缓存占用确定对第二动画的缓存帧数量进行调整的调整数量。
第二动画中单个图像帧的缓存占用可根据第二动画中单个图像帧包括的像素点数量和单个像素点的缓存占用确定。第二动画的缓存空间调整量以及单个图像帧的缓存占用确定了缓存帧能够调整的调整数量。其中,调整数量可与第二动画的缓存空间调整量呈正相关关系,与单个图像帧的缓存占用呈负相关关系。第二动画的缓存空间调整量越大,缓存帧的调整数量越多;第二动画中单个图像帧的缓存占用越多,缓存帧的调整数量越少。
示例性的,第二动画中缓存帧的调整数量A_s_rm可通过以下公式进行计算:A_s_rm=A_c_rm/A_pc。其中,A_c_rm可为第二动画的缓存空间调整量,A_pc可为第二动画中单个图像帧的缓存占用。
440、根据调整数量对第二动画的缓存帧数量进行调整,以对第二动画的缓存空间进行再分配。
电子设备在确定出调整数量时,若调整数量不为0,则可以对第二动画的缓存帧数量进行增加或者减少;若调整数量为0,则分配至第二动画的缓存帧数量可保持不变。其中:
当第二动画的播放频率小于平均播放频率时,电子设备可根据调整数量减少分配至第二动画的缓存帧数量,以释放第二动画的部分或全部缓存空间。第二动画的缓存帧减少数量可与调整数量相同。即,假设调整数量为X,电子设备可将分配至第二动画的缓存帧数量减少X帧。或者,第二动画的缓存帧减少数量也可不同于调整数量,例如可对调整数量进行一系列计算得到第二动画的缓存帧减少数量,具体不做限定。
分配至第二动画的缓存帧数量每减少一帧,第二动画的缓存空间需释放与已缓存的一帧第一图像帧对应的缓存空间。释放的缓存空间容量与第二动画中单个图像帧的缓存占用相关,在调整数量相同的情况下,第二动画中单个图像帧的缓存占用越大,第二动画可释放的缓存空间越多。
当第二动画的播放频率高于平均播放频率时,电子设备可根据调整数量增加分配至第二动画的缓存帧数量,以增加第二动画的缓存空间。第二动画的缓存帧增加数量可与调整数量相同。即,假设调整数量为Y,电子设备可将分配至第二动画的缓存帧数量增加Y帧。或者,第二动画的缓存帧增加数量也可不同于调整数量。例如,当缓存池中闲置缓存空间不足时,第二动画的缓存帧数量可小于调整数量。
分配至第二动画的缓存帧数量每增加一帧,电子设备需要从缓存池的闲置缓存空间中划分一个内存块,该内存块的缓存容量与第二动画中单个图像帧的缓存占用相同。在调整数量相同的情况下,若将所有新增的缓存帧进行缓存,则第二动画中单个图像帧的缓存占用越大,缓存池的闲置缓存空间需包括越多的缓存容量。
可见,在前述实施例中,电子设备在对缓存池进行初始分配之后,还可以根据各个动画的播放数据进行缓存空间的再分配,使得每个动画分配到的缓存空间可以与该动画的播放数据相适应。因此,可以在缓存池容量有限的情况下,让更需要缓存的动画分配到更多的缓存帧,有利于使得缓存池中已缓存的图像帧可以尽量少地被回收,尽量高地被命中,从而使得缓存池的使用率接近最大化。
为了更清楚地说明本申请实施例公开的缓存分配方法,以下内容将分别对前述步骤440中释放和增加第二动画的缓存空间的实施方式进行说明。
请参阅图5,图5是一个实施例公开的一种释放第二动画的缓存空间的实施方式的流程示意图。如图5所示,可包括以下步骤:
510、根据第二动画的播放频率与平均播放频率的差值确定调整权重。
520、根据调整权重、第二动画的缓存空间初始值以及平均播放频率确定第二动画的缓存空间调整量。
530、根据第二动画的缓存空间调整量以及第二动画中单个图像帧的缓存占用确定对第二动画的缓存帧数量进行调整的调整数量。
步骤510-步骤530的实施方式可参见前述实施例,以下内容不再赘述。需要说明的是,在本申请实施例中,第二动画的播放频率可小于平均播放频率,第二动画的播放频率与平均播放频率计算出的差值可小于0,调整权重的数值也可小于0。相应地,根据调整权重计算出的调整数量小于0,以表示需要减少分配至第二动画的缓存帧数量。
540、根据调整数量从第二动画的第一图像帧中识别出需要进行缓存释放的第二图像帧。
在本申请实施例中,第一图像帧可为第二动画中已缓存的图像,第二动画可包括一或多帧第一图像帧,具体不做限定。电子设备识别出的需要进行缓存释放的第二图像帧的数量可为上述的调整数量。
电子设备可按照预设规则从第二动画的第一图像帧中识别出需要进行缓存释放的第二图像帧。预设规则可包括:随机选取、按间隔选取、选取第二动画的前X帧第一图像帧或者选取第二动画的后X帧第一图像帧,但不限于此。其中,X为调整数量。
可选的,电子设备可按间隔从第二动画的第一图像帧中识别出第二图像帧。也就是说,步骤540的一种实施方式可包括以下步骤:
按照预设的间隔帧数,从第二动画的第一图像帧中确定出与释放数量匹配的第二图像帧。上述的间隔帧数,可为预设值,例如一帧;或者,也可根据第二动画中第一图像帧的数量与调整数量确定,具体不做限定。
示例性的,电子设备可遍历第二动画的各个第一图像帧,将首帧第一图像帧识别为需要进行缓存释放的第二图像帧。在将首帧第一图像帧识别为第二图像帧之后,电子设备可将当前识别出的第二图像帧之后的第K2+1个第一图像帧识别为下一帧第二图像帧,直至从第二动画中识别出的第二图像帧的数量达到调整数量。K2为间隔帧数。
示例性的,请参阅图6,图6是一个实施例公开的一种按照间隔识别出需要进行缓存释放的第二图像帧的示例图。如图6所示,第二动画可包括10帧图像,在图6中的标号分别为0-9。其中,标号为1、3、5、7、9的图像为已缓存的第一图像帧。若电子设备计算出第二动画对应的调整数量为3,间隔帧数为1,则图6中标号为1、5、9的第一图像帧可被识别为需要进行缓存释放的第二图像帧。
按间隔从第二动画的第一图像帧中识别出第二图像帧,可以使得保留的第一图像帧仍可能保持均匀分布,以将第二动画让出部分缓存空间对加载的影响降至最低。
550、对第二图像帧在第二动画的缓存空间中占用的缓存进行释放。
电子设备在识别出第二动画中需要进行缓存释放的第二图像帧之后,可以清除第二图像帧所携带的缓存标识,以指示该图像帧未被缓存。并且,电子设备可清除第二动画的缓存空间中缓存的第二图像帧的解析文件,并对缓存池的闲置缓存空间进行更改。每清除一帧第二图像帧的解析文件,电子设备可将闲置缓存空间的容量增加一次第二动画中单个图像帧的缓存占用。因此,在调整数量相同的情况下,第二动画中单个图像帧的缓存占用越大,第二动画可释放的缓存空间越多,对第二动画的缓存空间进行再分配之后,缓存池中闲置缓存空间的容量更大。
请参阅图7,图7是一个实施例公开的一种增加第二动画的缓存空间的实施方式的流程示意图。如图7所示,可包括以下步骤:
710、根据第二动画的播放频率与平均播放频率的差值确定调整权重。
720、根据调整权重、第二动画的缓存空间初始值以及平均播放频率确定第二动画的缓存空间调整量。
730、根据第二动画的缓存空间调整量以及第二动画中单个图像帧的缓存占用确定对第二动画的缓存帧数量进行调整的调整数量。
步骤710-步骤730的实施方式可参见前述实施例,以下内容不再赘述。需要说明的是,在本申请实施例中,第二动画的播放频率可大于平均播放频率,第二动画的播放频率与平均播放频率计算出的差值可大于0,调整权重的数值也可大于0。相应地,根据调整权重计算出的调整数量可大于0,以表示需要增加分配至第二动画的缓存帧数量。
740、根据调整数量从第二动画未缓存的各帧图像中识别出需要缓存的第三图像帧。
第二动画中既包括已缓存的一个或多个第一图像帧,也可包括未缓存的一个或多个图像帧。在增加第二动画的缓存空间时,电子设备可从未缓存的各个图像帧中识别出需要缓存的第三图像帧。
电子设备可按照预设规则从第二动画的第一图像帧中识别出需要缓存的的第三图像帧。预设规则可包括:随机选取、按间隔选取、选取第二动画的前X个未缓存的图像帧或者选取第二动画的后X个未缓存的图像帧,但不限于此。其中,X为调整数量。
可选的,电子设备识别出的每个第三图像帧可位于相邻的两个第一图像帧之间。也就是说,可以在相邻两个已缓存的第一图像帧之间插入一个需要缓存的第三图像帧,使得分配至第二动画的缓存帧数量增加之后,已缓存的各个图像帧之间仍然可以保持均匀分布的状态,以最大化第二动画的缓存效果。示例性的,电子设备可遍历第二动画的各个第一图像帧,从相邻两个第一图像帧之间的未缓存的图像帧中识别出一个第三图像帧。
此外,电子识别出的第三图像帧与相邻的第一图像帧之间间隔的图像帧数量可以相同,也可以不同,具体不做限定。示例性的,请参阅图8A和图8B。图8A是一个实施例中需要缓存的第三图像帧与已缓存第一图像帧的示例图。如图8A所示,标号为3和标号为7的图像帧可为相邻的两个已缓存的第一图像帧。相邻两个第一图像帧之间包括3个未缓存的图像帧,标号分为为4、5、6。如图8A所示,将标号为5的图像帧识别为需要缓存的第三图像帧,标号为5的图像帧与标号为3图像帧之间间隔1个图像帧,标号为5的图像帧与标号为7的图像帧之间也间隔1个图像帧。也就是说,第三图像帧位于相邻的两个第一图像帧之间,且每个第三图像帧与相邻的第一图像帧之间间隔的图像帧数量相同。
图8B是另一个实施例中需要缓存的第三图像帧与已缓存第一图像帧的示例图。图8B中第一图像帧的分布状态与图8A类似,以下内容不再赘述。如图8B所示,将标号为6的图像帧识别为需要缓存的第三图像帧,标号为6图像帧与标号为3的图像帧之间间隔1个图像帧,标号为6的图像帧与标号为7的图像帧之间间隔0个图像帧。也就是说,第三图像帧位于相邻的两个第一图像帧之间,且每个第三图像帧与相邻的第一图像帧之间间隔的图像帧数量不同。
可选的,电子设备识别出的每个第三图像帧可位于相邻的两个第一图像帧之间,且第三图像帧与相邻的第一图像帧之间间隔的图像帧数量相同。此时,若各个第一图像帧之间间隔的图像帧数量相同,即第一图像帧均匀分布,则分配至第二动画的缓存帧数量增加之后,第二动画已缓存的图像帧可以在整体上达到均匀分布状态。
在一个实施例中,电子设备可根据第二动画中第一图像帧的分布状态确定从第二动画中识别出第三图像帧的规则。
示例性的,若第二动画中第一图像帧的分布状态为:第一图像帧为第二动画的前M帧,M为初始分配至第二动画的缓存帧数量;则可将第二动画的最后X个未缓存的图像帧识别为需要缓存第三图像帧,以使第二动画使得分配至第二动画的缓存帧数量增加之后,已缓存的各个图像帧之间保持均匀分布状态。
示例性的,若第二动画中第一图像帧的分布状态为:均匀分布,即各个第一图像帧之间间隔的图像帧数量相同;则可以从相邻的两个第一图像帧之间未缓存的图像帧中识别出一个图像帧作为需要缓存的第三图像帧,且识别出的第三图像帧与相邻的第二图像帧之间间隔的图像帧数量相同,,以使第二动画使得分配至第二动画的缓存帧数量增加之后,已缓存的各个图像帧之间保持均匀分布状态。
750、在缓存池存在闲置缓存空间时,利用闲置缓存空间为需要缓存的第三图像帧建立缓存,以增加第二动画的缓存空间。
电子设备在识别出第二动画中需要缓存的第三图像帧之后,可以对第三图像帧进行缓存标识,以指示该图像帧需要缓存。并且,电子设备可从缓存池的闲置缓存空间中划分出与第三图像帧的数量相对应的内存块,以将第三图像帧的解析文件存储在对应的内存块中,从而为第三图像帧建立缓存。
可选的,为了避免缓存池的内存溢出,电子设备在对为第三图像帧建立缓存时,可先判断缓存池的闲置缓存空间是否足够。
示例性的,电子设备可根据闲置缓存空间的容量以及第二动画中单个图像帧的缓存占用,确定闲置缓存空间能够支持的缓存帧新增数量。电子设备可将闲置缓存空间能够支持的缓存帧新增数量与步骤730中计算出的调整数量进行比较,若缓存帧新增数量大于调整数量,则可为识别出的所有第三图像帧建立缓存;若缓存帧新增数量小于调整数量,则可为识别出的部分第三图像帧建立缓存,建立缓存的第三图像帧的数量可为上述的缓存帧新增数量。
示例性的,电子设备也可以遍历第二图像中的每个图像帧。针对每个当前图像帧,可通过前述步骤740所述的任意一种规则识别当前图像帧是否为第三图像帧。若当前图像帧为第三图像帧,则电子设备可进一步缓存池的闲置缓存空间是否小于第二动画中单个图像帧的缓存占用。
若缓存池的闲置缓存空间小于第二动画中单个图像帧的缓存占用,则电子设备可结束增加第二动画的缓存空间的操作。
若缓存池的闲置缓存空间大于第二动画中单个图像帧的缓存占用,则电子设备可以在闲置缓存空间中为当前图像帧建立缓存,并将闲置缓存空间的容量减少一次第二动画中单个图像帧的缓存占用,并记录当前已缓存的第三图像的数量。
若当前已缓存的第三图像的数量达到步骤730中计算出的调整数量,则电子设备可结束增加第二动画的缓存空间的流程。
若当前已缓存的第三图像的数量小于步骤730中计算出的调整数量,则电子设备可将需要识别的当前图像帧下移一帧,并继续执行识别当前图像帧是否为第三图像帧以及之后的各个步骤。
可见,在前述实施例中,电子设备可根据各个动画的播放频率对缓存空间进行再分配,播放频率低的动画可让出部分缓存空间以供播放频率高的动画使用。因此,播放频率高的动画可以缓存更多的图像帧,有利于使得缓存池的使用率接近最大化。此外,在再分配的过程中,需要进行第二图像帧或者需要缓存的第三图像帧都可尽量呈均匀分布状态,从而可以有效控制处理器的使用峰值,提高操作系统的运行稳定性。
请参阅图9,图9是一个实施例公开的一种缓存分配装置的结构示意图,该缓存分配装置可应用于前述实施例公开的任意一种电子设备,具体不做限定。如图9所示,该缓存分配装置900可包括:第一确定模块910、第二确定模块920、缓存模块930。
第一确定模块910,可用于确定第一动画的缓存空间初始值,所述第一动画为N个动画中的任一个,所述缓存空间初始值是将缓冲池平均分配至所述N个动画后,所述第一动画分配到的缓存容量,N为正整数,所述缓冲池的缓存容量固定。
第二确定模块920,可用于根据所述第一动画的缓存空间初始值以及所述第一动画中单个图像帧的缓存占用,确定分配至所述第一动画的缓存帧数量。可选的,第一动画中单个图像帧的缓存占用根据单个图像帧包括的像素点数量和单个像素点的缓存占用确定。
缓存模块930,可用于根据所述缓存帧数量,从所述第一动画中识别出需要进行缓存的第一图像帧,并在所述第一动画的缓存空间中为所述第一图像帧建立缓存。
在一个实施例中,缓存模块930,还可用于根据分配至所述第一动画的缓存帧数量,以及所述第一动画的图像帧总数,确定所述第一动画的缓存帧间隔数;以及,根据所述缓存帧间隔数从所述第一动画中识别出需要缓存的第一图像帧,所述第一动画中相邻两个所述第一图像帧之间间隔的图像帧数量为所述第一动画的缓存帧间隔数;所述第二动画为所述N个动画中的任意一个动画。
在一个实施例中,缓存分配装置900还可包括:第三确定模块和调整模块。
第三确定模块,可用于根据所述N个动画中每个动画的播放频率确定所述N个动画的平均播放频率。
调整模块,可用于根据所述第二动画的播放频率与所述平均播放频率对所述第二动画的缓存帧数量进行调整,以对所述第二动画的缓存空间进行再分配。
在一个实施例中,调整模块,可包括:数量确定单元和调整单元。
数量确定单元,可用于根据所述第二动画的播放频率与所述平均播放频率的差值确定调整权重;以及,根据所述调整权重、所述第二动画的缓存空间初始值以及所述平均播放频率确定所述第二动画的缓存空间调整量;以及,根据所述第二动画的缓存空间调整量以及所述第二动画中单个图像帧的缓存占用确定对所述第二动画的缓存帧数量进行调整的调整数量。
调整单元,可用于根据调整数量对第二动画的缓存帧数量进行调整,以对第二动画的缓存空间进行再分配。
在一个实施例中,调整单元,还可用于在第二动画的播放频率小于所述平均播放频率时,根据所述调整数量减少分配至所述第二动画的缓存帧数量,以释放所述第二动画的缓存空间。
在一个实施例中,调整单元,还可用于根据所述调整数量从所述第二动画的所述第一图像帧中识别出需要进行缓存释放的第二图像帧;以及,对所述第二图像帧在所述第二动画的缓存空间中占用的缓存进行释放。可选的,调整单元,还可用于按照预设的间隔帧数,从所述第一图像帧中确定出与所述释放数量匹配的第二图像帧。
在一个实施例中,调整单元,还可用于在第二动画的播放频率大于所述平均播放频率时,根据所述调整数量增加分配至所述第二动画的缓存帧数量,以增加所述第二动画的缓存空间。
在一个实施例中,调整单元,还可用于根据所述调整数量从所述第二动画未缓存的各个图像帧中识别出需要缓存的第三图像帧;以及,在所述缓存池存在闲置缓存空间时,利用所述闲置缓存空间为所述第三图像帧建立缓存,以增加所述第二动画的缓存空间。可选的,每个所述第三图像帧位于相邻的两个所述第一图像帧之间,且每个所述第三图像帧与相邻的所述第一图像帧之间间隔的图像帧数量相同。
可见,在前述实施例中,缓存分配装置可将缓存池配置为缓存容量固定,以减少缓存池占用波动,提高应用程序的运行稳定性。此外,缓存分配装置可以在缓存池缓存容量固定的情况下为不同尺寸的动画分配缓存空间,可对不同尺寸的动画进行有效缓存,最大化缓存效果。其次,缓存分配装置还可各个动画的播放数据进行缓存空间的再分配,使得每个动画分配到的缓存空间可以与该动画的播放数据相适应,,有利于使得缓存池中已缓存的图像帧可以尽量少地被回收,尽量高地被命中,从而使得缓存池的使用率接近最大化。
请参阅图10,图10是一个实施例公开的一种电子设备的结构示意图。
如图10所示,该电子设备可以包括:
存储有可执行程序代码的存储器1010;
与存储器1010耦合的处理器1020;
其中,处理器1020调用存储器1010中存储的可执行程序代码,执行本申请实施例公开的任意一种缓存分配方法。
需要说明的是,图10所示的电子设备还可以包括电源、输入按键、摄像头、扬声器、屏幕、RF电路、Wi-Fi模块、蓝牙模块、传感器等未显示的组件,本实施例不作赘述。
本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序被处理器执行时,使得处理器实现本申请实施例公开的任意一种缓存分配方法。
本申请实施例公开一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行本申请实施例公开的任意一种缓存分配方法。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请的各个实施例上述方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本申请实施例公开的一种缓存分配方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种缓存分配方法,其特征在于,所述方法包括:
确定第一动画的缓存空间初始值,所述第一动画为N个动画中的任一个,所述缓存空间初始值是将缓冲池平均分配至所述N个动画后,所述第一动画分配到的缓存容量,N为正整数,所述缓冲池的缓存容量固定;
根据所述第一动画的缓存空间初始值以及所述第一动画中单个图像帧的缓存占用,确定分配至所述第一动画的缓存帧数量;
根据所述缓存帧数量,从所述第一动画中识别出需要进行缓存的第一图像帧,并在所述第一动画的缓存空间中为所述第一图像帧建立缓存。
2.根据权利要求1所述的方法,其特征在于,所述第一动画中单个图像帧的缓存占用根据单个图像帧包括的像素点数量和单个像素点的缓存占用确定。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述缓存帧数量,从所述第一动画中识别出需要进行缓存的第一图像帧,包括:
根据分配至所述第一动画的缓存帧数量,以及所述第一动画的图像帧总数,确定所述第一动画的缓存帧间隔数;
根据所述缓存帧间隔数从所述第一动画中识别出需要缓存的第一图像帧,所述第一动画中相邻两个所述第一图像帧之间间隔的图像帧数量为所述第一动画的缓存帧间隔数;所述第二动画为所述N个动画中的任意一个动画。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述N个动画中一个或多个动画的播放数据对分配至第二动画的缓存帧数量进行调整,以对所述第二动画的缓存空间进行再分配;所述第二动画为所述N个动画中的任意一个动画。
5.根据权利要求4所述的方法,其特征在于,N大于或等于2,所述播放数据可包括:播放频率;所述根据所述N个动画中一个或多个动画的播放数据对分配至第二动画的缓存帧数量进行调整,以对所述第二动画的缓存空间进行再分配,包括:
根据所述N个动画中每个动画的播放频率确定所述N个动画的平均播放频率;
根据所述第二动画的播放频率与所述平均播放频率对所述第二动画的缓存帧数量进行调整,以对所述第二动画的缓存空间进行再分配。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二动画的播放频率与所述平均播放频率对所述第二动画的缓存帧数量进行调整,以对所述第二动画的缓存空间进行再分配,包括:
根据所述第二动画的播放频率与所述平均播放频率的差值确定调整权重;
根据所述调整权重、所述第二动画的缓存空间初始值以及所述平均播放频率确定所述第二动画的缓存空间调整量;
根据所述第二动画的缓存空间调整量以及所述第二动画中单个图像帧的缓存占用确定对所述第二动画的缓存帧数量进行调整的调整数量;
根据所述调整数量对所述第二动画的缓存帧数量进行调整,以对所述第二动画的缓存空间进行再分配。
7.根据权利要求6所述的方法,其特征在于,所述第二动画的播放频率小于所述平均播放频率;以及,根据所述调整数量对所述第二动画的缓存帧数量进行调整,以对所述第二动画的缓存空间进行再分配,包括:
根据所述调整数量减少分配至所述第二动画的缓存帧数量,以释放所述第二动画的缓存空间。
8.根据权利要求7所述的方法,其特征在于,所述根据所述调整数量减少分配至所述第二动画的缓存帧数量,以释放所述第二动画的缓存空间,包括:
根据所述调整数量从所述第二动画的所述第一图像帧中识别出需要进行缓存释放的第二图像帧;
对所述第二图像帧在所述第二动画的缓存空间中占用的缓存进行释放。
9.根据权利要求8所述的方法,其特征在于,所述根据所述调整数量从所述第二动画的所述第一图像帧中识别出需要进行缓存释放的第二图像帧,包括:
按照预设的间隔帧数,从所述第一图像帧中确定出与所述释放数量匹配的第二图像帧。
10.根据权利要求6所述的方法,其特征在于,所述第二动画的播放频率大于所述平均播放频率;以及,所述根据所述调整数量对所述第二动画的缓存帧数量进行调整,以对所述第二动画的缓存空间进行再分配,包括:包括:
根据所述调整数量增加分配至所述第二动画的缓存帧数量,以增加所述第二动画的缓存空间。
11.根据权利要求10所述的方法,其特征在于,所述根据所述调整数量增加分配至所述第二动画的缓存帧数量,以增加所述第二动画的缓存空间,包括:
根据所述调整数量从所述第二动画未缓存的各个图像帧中识别出需要缓存的第三图像帧;
在所述缓存池存在闲置缓存空间时,利用所述闲置缓存空间为所述第三图像帧建立缓存,以增加所述第二动画的缓存空间。
12.根据权利要求11所述的方法,其特征在于,每个所述第三图像帧位于相邻的两个所述第一图像帧之间,且每个所述第三图像帧与相邻的所述第一图像帧之间间隔的图像帧数量相同。
13.一种缓存分配装置,其特征在于,包括:
第一确定模块,用于确定第一动画的缓存空间初始值,所述第一动画为N个动画中的任一个,所述缓存空间初始值是将缓冲池平均分配至所述N个动画后,所述第一动画分配到的缓存容量,N为正整数,所述缓冲池的缓存容量固定;
第二确定模块,用于根据所述第一动画的缓存空间初始值以及所述第一动画中单个图像帧的缓存占用,确定分配至所述第一动画的缓存帧数量;
缓存模块,用于根据所述缓存帧数量,从所述第一动画中识别出需要进行缓存的第一图像帧,并在所述第一动画的缓存空间中为所述第一图像帧建立缓存。
14.一种电子设备,其特征在于,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110610125.6A CN113254211B (zh) | 2021-06-01 | 2021-06-01 | 缓存分配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110610125.6A CN113254211B (zh) | 2021-06-01 | 2021-06-01 | 缓存分配方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254211A true CN113254211A (zh) | 2021-08-13 |
CN113254211B CN113254211B (zh) | 2023-04-07 |
Family
ID=77185701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110610125.6A Active CN113254211B (zh) | 2021-06-01 | 2021-06-01 | 缓存分配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254211B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017166759A1 (zh) * | 2016-04-01 | 2017-10-05 | 乐视控股(北京)有限公司 | 缓存管理方法、装置、移动终端和电子设备 |
CN108696773A (zh) * | 2017-04-11 | 2018-10-23 | 上海谦问万答吧云计算科技有限公司 | 一种实时视频的传输方法及装置 |
CN109725948A (zh) * | 2018-12-11 | 2019-05-07 | 麒麟合盛网络技术股份有限公司 | 一种动画资源的配置方法及装置 |
CN109756622A (zh) * | 2018-12-26 | 2019-05-14 | 北京奇艺世纪科技有限公司 | 一种图像缓存方法、装置、移动终端及存储介质 |
CN110727520A (zh) * | 2019-10-23 | 2020-01-24 | 四川长虹电器股份有限公司 | 一种优化Android帧动画的实现方法 |
CN112070864A (zh) * | 2019-06-11 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 动画渲染方法、装置、计算机可读存储介质和计算机设备 |
CN112435313A (zh) * | 2020-11-10 | 2021-03-02 | 北京百度网讯科技有限公司 | 播放帧动画的方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-06-01 CN CN202110610125.6A patent/CN113254211B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017166759A1 (zh) * | 2016-04-01 | 2017-10-05 | 乐视控股(北京)有限公司 | 缓存管理方法、装置、移动终端和电子设备 |
CN108696773A (zh) * | 2017-04-11 | 2018-10-23 | 上海谦问万答吧云计算科技有限公司 | 一种实时视频的传输方法及装置 |
CN109725948A (zh) * | 2018-12-11 | 2019-05-07 | 麒麟合盛网络技术股份有限公司 | 一种动画资源的配置方法及装置 |
CN109756622A (zh) * | 2018-12-26 | 2019-05-14 | 北京奇艺世纪科技有限公司 | 一种图像缓存方法、装置、移动终端及存储介质 |
CN112070864A (zh) * | 2019-06-11 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 动画渲染方法、装置、计算机可读存储介质和计算机设备 |
CN110727520A (zh) * | 2019-10-23 | 2020-01-24 | 四川长虹电器股份有限公司 | 一种优化Android帧动画的实现方法 |
CN112435313A (zh) * | 2020-11-10 | 2021-03-02 | 北京百度网讯科技有限公司 | 播放帧动画的方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113254211B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3253064A1 (en) | Frame loss method for video frame and video sending apparatus | |
CN110333947B (zh) | 一种游戏应用的分包资源加载方法、装置、设备及介质 | |
US20170171601A1 (en) | Bullet screen loading method and electronic device | |
US9626364B2 (en) | Streaming media | |
US10862992B2 (en) | Resource cache management method and system and apparatus | |
WO2020220971A1 (zh) | 一种文件加载方法、装置、电子设备及存储介质 | |
CN108415772B (zh) | 一种基于容器的资源调整方法、装置和介质 | |
KR102219015B1 (ko) | 네트워크 이용을 개선하기 위한 네트워크 지원 프로토콜 사용 | |
CN109547647B (zh) | 静电干扰控制方法及相关产品 | |
CN110727607B (zh) | 内存回收方法、装置以及电子设备 | |
US20150134846A1 (en) | Method and apparatus for media segment request retry control | |
CN111245732B (zh) | 一种流量控制方法、装置及设备 | |
CN114071047A (zh) | 帧率控制方法及相关装置 | |
CN111581174A (zh) | 基于分布式集群系统的资源管理方法及装置 | |
CN114116215A (zh) | 内存管理方法、装置、电子设备及存储介质 | |
CN113254211B (zh) | 缓存分配方法、装置、电子设备及存储介质 | |
CN114245208A (zh) | 刷新率的设置方法及相关设备 | |
CN116069493A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
JP2008516320A (ja) | メモリフレームのサイズを決定する方法および装置 | |
CN114584826B (zh) | 一种视频动态下载方法、装置、电子设备及存储介质 | |
CN112675535B (zh) | 显示界面调整方法、装置、网络设备及存储介质 | |
CN111262794B (zh) | 网关的流量控制方法及装置 | |
CN114116231A (zh) | 一种数据加载方法、装置、计算机设备及存储介质 | |
US20100251251A1 (en) | Apparatus and method for cpu load control in multitasking environment | |
CN114546910A (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 |