CN111198729B - 静态资源加载方法、装置、计算机设备及存储介质 - Google Patents

静态资源加载方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111198729B
CN111198729B CN202010028336.4A CN202010028336A CN111198729B CN 111198729 B CN111198729 B CN 111198729B CN 202010028336 A CN202010028336 A CN 202010028336A CN 111198729 B CN111198729 B CN 111198729B
Authority
CN
China
Prior art keywords
static resource
static
trigger
statistical information
resources
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
CN202010028336.4A
Other languages
English (en)
Other versions
CN111198729A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010028336.4A priority Critical patent/CN111198729B/zh
Publication of CN111198729A publication Critical patent/CN111198729A/zh
Application granted granted Critical
Publication of CN111198729B publication Critical patent/CN111198729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5022Mechanisms to release resources

Abstract

本申请公开了一种应用程序静态资源的加载方法、装置、计算机设备及存储介质,该方法包括:获取静态资源在应用程序运行过程中的触发统计信息,静态资源包括第一静态资源与第二静态资源,触发统计信息包括与第一静态资源对应的第一触发统计信息以及与第二静态资源对应的第二触发统计信息;根据与第一触发统计信息对应的第一比例将第一静态资源的至少部分内容缓存至缓存空间内;以及根据与第二触发统计信息对应且不同于所述第一比例的第二比例将第二静态资源的至少部分内容缓存至缓存空间内。上述方法及装置可在保证静态资源流畅加载的情形下降低缓存空间的占用。

Description

静态资源加载方法、装置、计算机设备及存储介质
技术领域
本申请涉及应用程序缓存技术领域,更具体地,涉及一种应用程序静态资源的加载方法、装置、计算机设备及存储介质。
背景技术
目前,应用程序在运行过程中通常会使用大量的静态资源,例如音频文件、视频文件、动画特效文件等。
这些静态资源可以在使用的时候才从持久化存储器例如硬盘或者闪存中读取,这种方式占用内存少,但是对系统的输入/输出(IO)要求较高,带宽不足时产生播放卡顿。
这些静态资源也可以在应用程序启动后一次性读取到缓存(例如内存)中,这种方式可以避免播放卡顿,然而缓存占用较高。
因此,如何在保证静态资源的使用不会导致应用程序卡顿的同时降低缓存占用,成为亟待解决的技术问题。
发明内容
本申请提出了一种应用程序静态资源的加载方法、装置、计算机设备及存储介质,可根据静态资源的实际触发情况,来确定对应的加载方案,从而降低缓存占用。
根据本申请的一个方面,提供了一种应用程序静态资源的加载方法,方法包括:获取静态资源在应用程序运行过程中的触发统计信息,静态资源包括第一静态资源与第二静态资源,触发统计信息包括与第一静态资源对应的第一触发统计信息以及与第二静态资源对应的第二触发统计信息;
根据与第一触发统计信息对应的第一比例缓存所述第一静态资源的至少部分内容;
根据与第二触发统计信息对应的,不同于第一比例的第二比例缓存所述第二静态资源的至少部分内容。
根据本申请的另一个方面,提供了一种应用程序静态资源的加载装置,所述装置包括:
获取模块,用于获取静态资源在应用程序运行过程中的触发统计信息;
加载模块,用于根据与第一触发统计信息对应的第一比例将第一静态资源的至少部分内容缓存至缓存空间内;以及根据与第二触发统计信息对应的,且不同于第一比例的第二比例将所述第二静态资源的至少部分内容缓存至缓存空间内。
本申请实施例提供的技术方案带来的有益效果至少包括:对于不同触发频率的静态资源,分别采用不同的预加载比例,可以降低流式IO的并发数,进而可在保证静态资源流畅加载的情形下降低缓存空间的占用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的计算机设备。
图2示出了本申请一个示例性的实施例提供的静态资源加载方法的流程示意图。
图3示出了图2所示的方法中部分步骤的详细流程示意图。
图4示出了本申请另一个示例性的实施例提供的静态资源加载方法的流程示意图。
图5示出了本申请另一个示例性的实施例提供的静态资源加载方法的流程示意图。
图6示出了本申请另一个示例性的实施例提供的静态资源加载方法的流程示意图。
图7示出了本申请另一个示例性的实施例提供的静态资源加载方法的流程示意图。
图8示出了图7的方法的中间处理静态资源的流程示意图。
图9示出了本申请一个示例性实施例提供的静态资源加载方法的流程示意图。图10未出了本申请提供的静态资源加载方法应用于某一款游戏的示意图。
图11示出了本申请一个示例性的实施例提供的静态资源加载装置的框图。图12示出了本申请一个示例性实施例提供的终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
术语定义:
静态资源,主要是指应用程序运行过程中需要调用到的静态资源,例如音频、视频、图片、动画特效等,其存储方式可以是系统文件,也可以是数据库,其存储位置可以是本机的持久化存储设备如硬盘、闪存,也可以是云端的存储系统例如对象存储系统或者数据库系统。
应用程序(Application):是指为针对用户的某种场景下需求所撰写的软件,例如游戏应用、即时聊天应用、社交应用、视频播放应用、音频播放应用等。
缓存:是指带宽相对更高的存储装置,但并不是绝对定义的某种存储装置,在不同场景下可有具有不同的含义,例如,在一般的计算机设备、移动通信设备中,内存相比硬盘或者闪存具有更高的带宽,可以将内存作为缓存。而在一些场景中,本机的硬盘或者闪存相比于从网络读取更快,也可以将本机的硬盘或闪存作为缓存。当缓存作为动词使用时,表示将数据保存在上述的缓存内。
缓存空间:是指在缓存中开辟的一个连续或不连续的存储空间,一般来说,受限于硬件资源,缓存空间的大小都是有限的。
暂态,是指存储器的存储状态是非持久化的、临时的,一般来说是指其存储器断电后存储内容丢失。
本申请公开了一种静态资源加载的技术方案,其可以在保证应用程序流畅运行的前提下,降低缓存空间占用。
参阅图1,示出了本申请一个示例性实施例提供的计算机设备,该计算机设备1包括处理器10、主存储器11、非易失性存储器12、以及无线模块13。处理器10与主存储器11之间通过第一总线16相连,可以理解,这里的第一总线16仅为示意,并不限于只是一条物理意义上总线,任何可以将主存储器11与处理器10连接的硬件架构及技术均可使用。
主存储器11一般为易失性存储器,例如动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)。
非易失性存储器12及无线模块13均通过输入/输出(IO)总线17与第一总线16相连,进而可与处理器10进行交互。IO总线例如可以为外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或者高速串行计算机扩展总线(PeripheralComponent Interconnect Express,PCI-E)。
非易失性存储器12可以包括硬盘、磁盘、磁带、闪存等。无线模块13例可以为无线保真(Wireless Fidelity,WiFi)模块,或者无线基带芯片等。无线模块13可通过无线信号与云端服务器20相连。
非易失性存储器12内存储有应用程序120,应用程序120包括静态资源122。一般来说,应用程序120安装后非易失性存储器12内会有对应的一个或多个存储目录,静态资源一般直接以文件形式存储,但并不排除以其他方式存储例如压缩包方式存储,甚至以数据库的方式进行存储。
当应用程序120被启动后,其将会在主存储器11中申请缓存空间110,用于对静态资源122进行缓存或者预加载管理。
参阅图2,其示出了本申请一个示例性的实施例提供的静态资源加载方法的流程示意图,该方法包括以下步骤:
步骤S10,应用程序120启动。应用程序120启动可以是响应于用户的指令,例如点击图标、语音指令、手势操作指令等进行的。应用程序的启动过程具体包括由处理器加载应用程序120并运行的过程。
步骤S11,静态资源122的缓存处理。首先,应用程序120在主存储器11中申请缓存空间110,并根据缓存策略对静态资源122进行缓存处理。缓存处理可以在单独的进程中进行,也就是说,预加载的处理与应用程序120的主进程可以是并行的。一般来说应用程序120的主进程是指其UI进程,直接响应于用户操作。而预加载的处理可以放在后台进程中进行。
在应用程序120的实际运行过程中,静态资源尤其是音频与视频,如果其时长为T,在实际场景下并不是每次都会完整的播放完全部时长T,因此,如果能够给定一个预加载比例,对静态资源只按这个预加载比例进行预加载或者说缓存,而这个比例的静态资源已经能够满足大多数场景下的实际播放时长,那么无疑在保证缓存成功率的前提下降低了缓存空间的占用。
对于应用程序120来说,当某一个静态资源122被调用时,要么已经被缓存,要么未被缓存,而所有未被缓存的部分只能从非易失性存储器12中读取,无疑从非易失性存储器12中读取的速度较慢。为了确保应用程序120的流畅运行,即使在未被缓存的情形下,也需要保证静态资源触发时有足够的带宽。
假设静态资源加载的最大输入/输出(Input/Output,IO)的并发数为N,非易失性存储器12的可以读取带宽为B(Kbps),则每个IO平均可用平均带宽为B/N。
设每个静态资源的预加载比例为P,其中0≤P≤1,表示根据本申请公开的方法,静态资源比例为P的内容被缓存到缓存空间110中。
静态资源的平均时间长为L(秒),静态资源的压缩码率为C(Kbps)。当某一个静态资源被触发并播放到位置X,其中X表示当前时长与静态资源总时长的比例,则静态资源播放到当前位置X的时长为:
X×L (1)
对于式(1)所表示的时长,对于预加载比例内的部分,可以直接从缓存空间110内读取,而未被缓存的部分则需要通过流式IO从非易失性存储器12中读取,需要读取的部分所要耗费的时间为:
(X-P)×L×C/(B/N) (2)
为了确保播放流畅,需要读取的总时间小于播放时间,也就是式(1)与式(2)需要满足如下关系:
X×L≥(X-P)×L×C/(B/N) (3)
简化得到:
Figure BDA0002363290070000051
其中0≤X≤1,代入得到:
Figure BDA0002363290070000052
从上式可以看到:预加载比例P只与IO并发数N、可用带宽B及静态资源的压缩码率C。而可用带宽B及静态资源的压缩码率C正常情况下不可调整,要降低预加载比例P的大小,也即降低缓存空间110的大小,只能减少最大IO并发数N。
假设缓存空间110的大小为S(Kb),静态资源的平均时长为
Figure BDA0002363290070000055
(秒),则缓存空间110的大小必须保证能够缓存最大IO同时存在的音频媒体内容:
Figure BDA0002363290070000056
假设使用预加载模式的静态资源总数为M。根据预加载大小和缓存空间110的大小,可计算得到优化缓存占用值:
Figure BDA0002363290070000057
代入S得到:
Figure BDA0002363290070000058
代入P值得到:
Figure BDA0002363290070000053
简化得到:
Figure BDA0002363290070000054
当下式满足,可以实现缓存优化:
Figure BDA0002363290070000061
缓存的优化占比R为:
Figure BDA0002363290070000062
对于决定使用预加载模式的静态资源而言,其总数M不可调整。可用带宽B和静态资源压缩码率C也不可调整。要提高缓存占用优化量,需要降低N。也就是说,在步骤S11的预加载模式下,能够降低IO并发数的技术手段,均可采用以实现缓存空间占用的优化。
例如,对于缓存空间110内的已经被缓存的静态资源,如果其触发频次比较高,当其在缓存空间110内进行锁定,也就说,被触发后其缓存内容不从缓存空间110内释放,可以降低N的大小。假设缓存后的最大IO并发数为N’,对应低频触发的静态资源的预加载比例可以按照调整后N’进行计算,可再进一步降低预加载的缓存占用。
在应用程序的运行过程中,静态资源的触发次数是离散型随机变量。假设同一个静态资源之间的触发是独立的。在任意相同的时间范围内,静态资源触发概率是相同的,且触发次数少。那么固定时长内静态资源触发的次数F(k)符合泊松分布:
Figure BDA0002363290070000063
其中,λ为固定时长静态资源触发的平均次数,也即为期望。泊松分布的期望等于方差。独立泊松分布之和仍然服从泊松分布,其期望等于各个独立泊松变量的期望之和。这个特性可以用于进行并发IO估计。
假设待加载的静态资源共有M个,其中,第i个待加载的静态资源的触发频率为Fi。根据上述假设并发IO即为M个静态资源同时触发的频率,得到最大IO并发数N:
Figure BDA0002363290070000064
从而将公式(5)代入公式(3),可以得到比例
Figure BDA0002363290070000065
动态缓存大小计算如下:
Figure BDA0002363290070000066
节省缓存占用量:
Figure BDA0002363290070000071
其中平均长度满足:
Figure BDA0002363290070000072
代入上式简化为
Figure BDA0002363290070000073
可以得到,当下式满足时可以降低缓存占用:
Figure BDA0002363290070000074
假定静态资源的平均触发频率为F′,则有:
Figure BDA0002363290070000075
只考虑大于平均触发频率F′的静态资源对应的IO并发数量为:
Figure BDA0002363290070000076
通过缓存空间110锁定大于这部分静态资源内容,可以降低整体的IO并发数量。
假设降低因子α,降低后实际IO并发量为:
N′=N-α×Nc,0≤α≤1 (23)
对应低于平均触发频率F′的静态资源使用调整后新的预加载比P′i
Figure BDA0002363290070000077
由上述公式可知,在步骤S11中,对于触发频率不同的静态资源,分别采用不同的预加载比例,可以有降低缓存空间的占用。也就是说,至少存在两个静态资源,其分别采用不同的预加载比例进行缓存。例如,可以将静态资源122的触发频率分成几个连续的区间,每个区间对应一个频率范围,对于每个区间,可以采用相同的预加载比例,而对于不同的区间,采用不同的预加载比例。而对于每个区间,其对应的频率越高,则其对应的预加载比例可以越高。当然还可根据不同静态资源122的触发频率采用经验公式或者模型计算其预加载比例。此处的经验公式或者模型是基于静态资源的触发统计数据及实际不同加载比例的优化效果训练得到。
在应用程序120的运行过程中,静态资源122的触发是随机的,换言之,某一个具体的静态资源122的触发频率随时会发生变化,而根据以上的描述,针对不对触发频率的静态资源采用不同的预加载比例,可以有降低缓存空间的占用。因此,如图1所示,以上的方法还可包括:
步骤S12,根据应用程序120中静态资源122的触发统计信息动态调整缓存。具体地,在应用程序120运行时监测静态资源的调用数据,此处的调用数据可包括:调用时间、加载长度(适用于音视频文件)、使用时长(适用于音视频文件)等,这些数据成为所述触发统计信息的一部分。具体的实现手段上,例如可以在应用程序中的静态资源加载过程中添加一个拦截器,拦截到有静态资源加载请求时,触发静态资源调用数据的更新。此处的触发统计信息如下表1所示:
表1静态资源的触发统计信息
静态资源标识 触发频率(次/分钟) 上次触发时间
第一静态资源 10 2019/12/27 15:43:00
第二静态资源 5 2019/12/27 15:40:05
第三静态资源 1 2019/12/27 15:40:10
…… …… ……
可以理解,以上的触发统计信息数据统计表仅为示意,并非用以限定触发统计信息的数据结构及其它统计字段。
触发统计信息可以是应用程序本次运行统计得到的,可以是上次应用程序运行过程中统计得到并存储的,还可以是结合应用程序多次运行过程中的统计结果得到的。也就是说,在应用程序120中,每次静态资源触发时,可以记录其触发数据并可相应更新静态资源的触发统计信息。
步骤S12中的动态调整,是指根据不同静态资源对应的触发统计信息的不同,重新调整其缓存,例如,当其更新后的触发频率小于某个值时,从缓存空间110中释放对应的缓存。又例如,当其更新后触发频率大于某个值时,在缓存空间110中锁定对应的缓存,即使在触发后也不再释放。
此外,还可以根据更新后的触发统计信息更新其预加载比例,并刷新对应的缓存。
参阅图3,其为步骤S12的一个更加详细的流程示意图,其动态调整包括以下步骤:
步骤S121,检测静态资源触发。例如,在应用程序120中,将所有静态资源的加载操作可交由一个统一的加载器进行,而在该加载器可以拦截所有的静态资源加载请求,也即实现对静态资源触发的检测。当然,可以理解,并静态资源触发的检测并不限于这种方式,只要能够实现在静态资源被触发时触发步骤S121即可。
步骤S122,获取当前静态资源的触发频率。可以理解,在步骤S121中,检测到静态资源触发后还可将其触发数据记录下来,进而得到所有静态资源的触发统计信息,例如所有静态资源的触发频率。此处的触发数据可包括:触发时间,播放时长等。本步骤中,检测到某一个静态资源的触发后,从触发统计信息中获取当前静态资源的触发频率。
步骤S123,缓存申请。缓存申请是指尝试从缓存空间110内读取当前静态资源。
步骤S124,缓存处理。具体包括对静态资源进行缓存处理并返回给请求方。此处的请求方可以是应用程序120内的任意其他功能模块。
对于任意静态资源,其有以下三种状态:第一种,已经存在于缓存空间110中且缓存的部分时长足够,此时步骤S124无须再次进行缓存;第二种,当前静态资源并不存在于缓存空间110中,此时只能从非易失存储器12中读取内容,也就是说执行步骤S125;第三种,当前静态资源存在于缓存空间110中,但缓存的时长小于当前需要的时长,此时需要通过流式IO加载的部分为需要的时长减去已经预加载的时长。在第二种及第三种情形下,对于流式IO读取的部分,可以进行缓存处理,也就是将其保存至缓存空间110内。
此外,在步骤S124中,还可根据当前静态资源的触发频率触发缓存策略的更新。例如,可根据触发频率将静态资源分成高频静态资源与低频静态资源,其中,高频静态资源是指触发频率高于或等于平均触发频率的静态资源,或者高频静态资源也可以是指触发频率高于某个特定值的静态资源。这里的特定值可以是一个固定的经验值,也可以是用一个经验公式从所有静态资源的触发统计信息计算得到。例如,a×Fc+b,其中a、b为任何实数,Fc为平均触发频率。低频静态资源是指触发频率低于平均触发频率或者上述特定值的静态资源。
对于高频静态资源与低频静态资源,可以分别采用不同的缓存策略。例如高频静态资源申请缓存后,播放结束后不释放缓存;而低频音效申请缓存后,待播放结束主动释放缓存。
需要说明的是,若某一静态资源播放结束后不释放缓存,则其缓存的内容将会是所有已经从非易失性存储器12中读取的部分,而不再仅限于预加载比例P部分的内容。
若某一静态资源播放播放后需要释放缓存,并不影响其预加载比例P内的内容。也就是说,若某一个静态资源以预加载比例P进行了预加载/缓存处理,这部分的内容是不会被释放的,若该静态资源当前播放至X,则只有X-P这部分的内容会被释放。当然,若该静态资源的预加载比例为0,则所有缓存的内容均会被释放。
步骤S126,静态资源的使用。静态资源的来源有两种,一种是缓存空间110直接读取的,另一种是通过流式IO读取的。对于音频或者视频,获取后可以进行解码播放。
在步骤S124及步骤S126后,均可触发步骤S127,进行动态控制。例如,在步骤S124中,对于通过流式IO加载的静态资源,还可将其保存至缓存空间110内。由于缓存空间110的大小有限制,此时有可能缓存空间110已经不足以缓存当前的静态资源,此时可发触发缓存的清理,例如清理属于高频静态资源但使用时间最早的静态资源。又例如,若某个静态资源的原来属于高频静态资源,但在最新的触发统计信息中,其变为了低频静态资源,那么可以将对应的缓存释放。
需要说明的是,在一个实施例中,此处的清理,并不影响预加载比例P内内容。也就是说,若某一个静态资源的预加载比例为P,当前缓存内存储有X的内容,此处的清理,仅仅是指将X-P部分的内容清理掉,并不影响预加载比P内的内容。因此,在这个实施例中,预加载比例P内的内容可以理解会一直存在于缓存空间110内,当然其内容可能会动态调整。
在上述的方法中,对于不同触发频率的静态资源,分别采用不同的预加载比例,可以降低流式IO的并发数,进而可在保证静态资源流畅加载的情形下降低缓存空间的占用。假设允许IO带宽B=200kbps,压缩码率C=48kbps。预加载静态资源总数M=50,并发IO数N=10,相当于50个音效平均触发频率0.2次/s。代入式(12)中计算得R=21.67%。而且,通过静态资源的触发动作动态的更新调整缓存策略,可以使R最大化。
参阅图4,其示出了本申请一个示例性的实施例提供的静态资源加载方法的流程示意图,该方法包括以下步骤:
步骤S41,获取静态资源在应用程序运行过程中的触发统计信息。此处的触发统计信息可如下表所示:
静态资源标识 触发频率(次/分钟) 上次触发时间
第一静态资源 10 2019/12/27 15:43:00
第二静态资源 5 2019/12/27 15:40:05
第三静态资源 1 2019/12/27 15:40:10
…… …… ……
对于上述数据表格与第一静态资源对应的数据行可以标记为第一触发统计信息,与第二静态资源对应的数据行可以标记为第二触发统计信息。与第三静态资源对应的数据行可以标记为第三触发统计信息,以此类推。
步骤S42a,根据第一比例将第一静态资源缓存到缓存空间内;以及
步骤S42b,根据第二比例将第二静态资源缓存到缓存空间内。
假设所有静态资源的平均触发频率为6,根据以上描述中的定义,那么第一静态资源属于高频静态资源,而第二静态资源属于低频静态资源。一般来说,高频静态资源可以具有更高的预加载比例,低频静态资源可以具有较低的预加载比例,也就是说,在本实施例中,第一比例会高于第二比例。当然,若第一静态资源属于低频静态资源,而第二静态资源属于高频静态资源,则第一比例会小于第二比例。但无论如何,第一比例与第二比例不相等或不同。
在本实施例提供的静态资源加载方法中,让高频静态资源与低频静态资源分别具有更高及更低的预加载比例,根据以上公式(1)到(24)的计算结果,可以降低流式IO的并发数N,进而可以降低整体的预加载比例,从而降低了缓存空间占用。
参阅图5,其示出了本申请一个示例性的实施例提供的静态资源加载方法的流程示意图,其在图4所示的方法基础上进一步包括了以下步骤:
步骤S43a,当第一静态资源触发时,确定第一触发统计信息是否满足预置的第一条件。此处的第一条件例如是指其触发频率是否在特定的范围内,例如,超过平均触发频率或者低于平均触发频率,或者上述的特定值。
在步骤S43a之后,根据步骤S43a的结果,分别执行步骤S441a与步骤S442a。
其中,当第一触发统计信息满足预置的第一条件时,进行步骤S441a,锁定第一静态资源的缓存状态。此处锁定缓存状态,是指将使第一静态资源的缓存不在触发后不被释放。具体地,针对缓存空间110内所有被缓存的静态资源中的每一个可存储对应的锁定标记,该锁定标记至少包括两种状态值:锁定与非锁定,当处于锁定状态时,该静态资源不可释放。当然,锁定标记并不是必须的,例如,还可以直接通过静态资源的触发频率来判断某个静态资源的缓存状态。
当第一触发统计信息不满足预置的第一条件时,进行步骤S442a,释放第一静态资源的缓存。释放缓存是指将从缓存空间110中删除此缓存从而释放空间用于后续使用。
与步骤S43a相似,在步骤S42b后还可包括:
步骤S43b,当第二静态资源触发时,确定第二触发统计信息是否满足预置的第二条件。此处的第二条件例如是指其触发频率是否在特定的范围内,例如,超过平均触发频率或者低于平均触发频率。可以理解,此处的第二条件实质上可以与第一条件完全相同,也可不同。当第一条件与第二条件相同时,意味步骤S43a与步骤S43b的方法本质上是相同,推而广之,意味着针对所有进行缓存的静态资源,都执行了同样的方法步骤。
在步骤S43b之后,根据步骤S43b的结果,分别执行步骤S441b与步骤S442b。
其中,当第二触发统计信息满足预置的第二条件时,进行步骤S441b,锁定第一静态资源的缓存状态。
当第二触发统计信息不满足预置的第二条件时,进行步骤S442b,释放第二静态资源的缓存。
需要说明的是,除了锁定与释放缓存,还可以动态的更新统计信息更新其对应的预加载比例,例如,对于第一静态资源,在其被调用后,更新第一统计信息,根据更新后的第一统计信息更新第一比例,进而根据第一比例刷新其对应的缓存;对于第二静态资源,在其被调用后,更新第二统计信息,根据更新后的第二统计信息更新第二比例,进而根据第二比例刷新其对应的缓存。
在一个实施例中,对应用于触发频率的几个连续区间,第一比例或者第二比例分别具有一个对应的取值,也就是说,第一比例或者第二比例的取值不是连续的,而一个频率触发区间对应一个相同的比例值。例如:频率范围2-4次/分钟,对应的比例为0.6。频率范围4-6次/分钟,对应的比例为0.8。
第一个实施例中,对应于不同的触发频率,其预加载比例的取值是根据触发频率采用公式或模型直接计算得到。这种情形下,基于不同的触发频率,其取值可能是连续的。
在本实施例的方法中,在对静态资源进行缓存处理后,在静态资源触发后还根据其触发统计信息更新其缓存策略,可在图4所示方法的基础上进一步降低缓存空间占用。
参阅图6,其示出了本申请一个示例性的实施例提供的静态资源加载方法的流程示意图,其在图4所示的方法基础上进一步包括了以下步骤:
步骤S45,确定静态资源是否符合预加载的条件。也就是说,对要进行缓存处理的静态资源进行筛选。筛选的标准也是根据静态资源的触发统计信息。例如,当某个静态资源的触发频率超过某个值时才进行缓存处理。本实施例中,第一静态资源与第二静态资源符合缓存处理的标准,因此后续进行了缓存处理。而第三静态资源不符合缓存处理的标准,因此在步骤S45后,其执行步骤S42c,不进行缓存处理。
在步骤S45后,当检测到第三静态资源触发时,确定其是否满足第三条件。此处的第三条件例如是指其触发频率是否在特定的范围内,例如,超过平均触发频率或者低于平均触发频率或者上述的特定值。
当满足第三条件时,执行步骤S441c,缓存并锁定第三静态资源的缓存。如果第三静态资源从未被缓存过,则从非易失性存储器中读取其内容并进行缓存。
若不满足第三条件,执行步骤S442c,释放第三静态资源的缓存。
根据本实施例的方法,在进行预加载之前,还根据触发统计信息对静态资源做了筛选处理,可降低缓存占用,而未被缓存的第三静态资源在触发时仍然遵循类似的缓存策略进行缓存处理,可在图4所示方法的基础上进一步降低缓存空间占用。
参阅图7,其示出了本申请另一个示例性的实施例提供的静态资源加载方法的流程示意图,该方法包括以下步骤:
步骤S51,运行应用程序统计静态资源触发。此处的运行应用程序可以是在真实用户运行过程中进行统计,或者采用自动化测试框架模拟用户运行应用程序以触发各种静态资源,从而得到类似于表1所示的静态资源触发统计信息。
步骤S52,对静态资源进行筛选。步骤S52是为了从所有的静态资源中筛选出需要进行预加载的静态资源的。具体地,可以根据每个静态资源的触发频率是否超过预置阈值来进行,例如,当某个静态资源的触发频率大于或等于该预置阈值时,则该静态资源属于要进行预加载的静态资源。又例如,当某个静态资源的触发频率大于该预置阈值时,则该静态资源属于要进行预加载的静态资源。
步骤S53,进行优化计算。根据步骤S51中获取的触发统计信息,对于筛选后要进行预加载处理的静态资源,可以得到其总数M,触发频率F以及平均时长L,在拿到这些数据之后,即可根据公式(5)计算预加载比例P以及根据公式(12)计算优化结果R。
步骤S54,确定优化结果是否满足设定的优化目标,若是则执行步骤S55,否则执行步骤S56。优化目标也是一个大于零小于1的数,代表着缓存空间的降低比例。一旦预加载比例P确定,那么根据公式(6),缓存空间110的大小也就确定了。
步骤S55,静态资源导出,具体地,根据计算得到的预加载比例P将需要进行预加载处理的静态资源的内容加载到缓存空间110中。
步骤S56,调整阈值。此处阈值是指静态资源的触发频率阈值,当然,也还可进一步包括静态资源的时长L。
步骤S57,中间件处理静态资源。此处的中间件,是指专门设计的一个程序功能模块,其在应用程序120中负责静态资源的加载。其他功能模块需要调用静态资源时,并不是直接从非易失性存储器12中读取,而是调用该中间件。
步骤S58,使用静态资源。在中间件将静态资源返回后,即可使用该静态资源,根据不同的静态资源类似,其使用也不相同。对于音频、视频、动画等静态资源可以进行播放。
步骤S59,检测静态资源的触发,当检测到静态资源触发后则执行:
步骤S60,对缓存进行动态管理,而具体的管理策略可以参考上述实施例的描述。
参阅图8,其示出了本实施例的中间件处理静态资源及进行缓存动态管理的更加详细的流程示意图,其包括:
步骤S571,接收静态资源调用请求。此处的静态资源调用请求是由应用程序120的其它功能模块发起。响应于此静态资源调用请求,需要返回指定的静态资源对象给请求者。
步骤S572,确定请求的静态资源是否已被缓存,若是,则执行步骤S573,否则执行步骤S574。
步骤S573,若请求的静态资源已被缓存,则可直接返回缓存的静态资源。
步骤S574,若请求静态资源未被缓存,则可通过流式IO读取静态资源,将其保存至缓存空间110内,并将缓存空间110内的数据对象返回给请求方。
由步骤S573与步骤S574可知,无论静态资源是否已经被缓存,最后返回给请求方的都是缓存空间110内的数据对象。但根据请求的静态资源的触发频率的不同,后续会有不同的处理策略。
步骤S575,若请求的静态资源的触发频率小大于频率阈值F,则执行步骤S576;否则执行步骤S577。此处的阈值F可为上述步骤S53中的频率阈值。
步骤S576,锁定请求的静态资源的缓存状态,即在静态资源使用完成后并不从缓存空间110内删除。
步骤S577,释放缓存,即在静态资源使用完成后从缓存空间110内删除,完成删除后,其存储空间可以提供给其它静态资源使用。
根据图8所示的流程,采用中间件的方式,给应用程序120内的其他功能模块提供了一个统一的静态资源的访问、调用接口,对于静态资源的消费者来说,并不需要考虑静态资源缓存处理的细节,但可以实现缓存空间占用降低的优化目标。
参阅图9,其示出了本申请一个示例性实施例提供的静态资源加载方法的流程示意图,其整体流程与图7所示的方法相似,但本实施例的方法应用于游戏音效技术领域,该方法包括以下步骤:
步骤S61,游戏跑测。此处的游戏的种类并不受任何限制,例如,其可为大型多人在线角色扮演游戏(Multiplayer Online Role-Playing Game,MMORPG)、棋牌游戏、多人在线战术竞技游戏(Multiplayer Online Battle Arena,MOBA)等。在跑测过程中主要记录下所有音效的触发数据,例如触发时间、播放时长、音效平均时长等,基于记录的触发数据,可以进一步统计得到触发统计信息如触发频率以及平均播放时长等。可以理解,虽然游戏类型并不受限制,但不同类型的游戏的音效的分布特点确实不同。一般来说,棋牌游戏的音效的数量较少,而MMORPG或者MOBA类型的游戏音效数量较大,音效时长也更加的符合泊松分布,更加合适用本申请中公开的方法来优化缓存。换言之,所有游戏均可适用,但音效符合泊松分布的游戏更加的适用。
步骤S62,对音效进行筛选。步骤S62是为了从所有的音效中筛选出需要进行预加载的音效。具体地,可以根据每个音效的触发频率是否超过预置阈值来进行,例如,当某个音效的触发频率大于或等于该预置阈值时,则该音效属于要进行预加载的音效。又例如,当某个音效的触发频率大于该预置阈值时,则该音效属于要进行预加载的音效。
步骤S63,进行优化计算。根据步骤S61中获取的触发统计信息,对于筛选后要进行预加载处理的音效,可以得到其总数M,触发频率F以及平均时长L,在拿到这些数据之后,即可根据公式(5)计算预加载比例P以及根据公式(12)计算优化结果R。
步骤S64,确定优化结果是否满足设定的优化目标,若是则执行步骤S65,否则执行步骤S66。优化目标也是一个大于零小于1的数,代表着缓存空间的降低比例。一旦预加载比例P确定,那么根据公式(6),缓存空间110的大小也就确定了。
步骤S65,音效导出,具体地,根据计算得到的预加载比例P将需要进行预加载处理的音效的内容加载到缓存空间110中。
步骤S66,调整阈值。此处阈值是指音效的触发频率阈值,当然,也还可进一下包括音效的时长L。
步骤S67,音频中间件处理音效。此处的音频中间件,是指专门设计的一个程序功能模块,其在应用程序120中负责音效的加载。其他功能模块需要调用音效时,并不是直接从非易失性存储器12中读取,而是调用该音频中间件。
步骤S68,使用音效。在音频中间件将音效返回后,即可使用该音效,即播放音频。
步骤S69,检测音效的触发,当检测到音效则执行:
步骤S70,对缓存进行动态管理,而具体的管理策略可以参考图8的相关描述。
根据本实施例的游戏音效加载方法,根据预设的触发频率阈值对要进行预加载的音效进行筛选,针对不同音效采用不同的预加载比例,可以降低缓存空间占用。而在游戏的运行过程,实时地统计音效的触发,并相应更新音效的触发统计更新,可以进一步降低缓存空间的占用。
参阅图10,其示出了上述的静态资源加载方法应用于王者荣耀这款游戏的示意图。如图10所示,该画面为王者荣耀游戏的加载画面,在这期间王者荣耀游戏客户端会加载所有需要的静态资源,包括音视频、地图等。而上述实施例的静态资源加载方法可用于王者荣耀的音视频特效加载。
参考图11,其示出了本申请一个示例性的实施例提供的静态资源加载装置的框图,该装置70包括:
获取模块701,用于所述静态资源在所述应用程序运行过程中的触发统计信息;
加载模块702,用于根据与所述第一触发统计信息对应的第一比例将所述第一静态资源的至少部分内容缓存至缓存空间内;以及根据与所述第二触发统计信息对应的第二比例将所述第二静态资源的至少部分内容缓存至缓存空间内,所述第二比例大于或者小于所述第一比例,即所述第一比例与所述第二比例不相等或者不同。
综上所述,本实施例提供的静态资源加载装置,对于不同触发频率的静态资源,分别采用不同的预加载比例,可以降低流式IO的并发数,进而可在保证静态资源流畅加载的情形下降低缓存空间的占用。
请参考图12,示出了本申请一个示例性实施例提供的终端900的结构框图。该终端900可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital SignalProcessing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中上述方法实施例提供的拓扑结构识别的方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。
处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、触摸显示屏905、摄像头906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将输入/输出(Input/Output,IO)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射射频(Radio Frequency,RF)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi网络。在一些实施例中,射频电路904还可以包括近距离无线通信(Near Field Communication,NFC)有关的电路,本申请对此不加以限定。
显示屏905用于显示用户界面(User Interface,UI)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及虚拟现实(Virtual Reality,VR)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位终端900的当前地理位置,以实现导航或基于位置的服务(Location Based Service,LBS)。定位组件90 8可以是基于美国的全球定位系统(GlobalPositioning System,GPS)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制触摸显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或触摸显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在触摸显示屏905的下层时,由处理器901根据用户对触摸显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置终端900的正面、背面或侧面。当终端900上设置有物理按键或厂商标志时,指纹传感器914可以与物理按键或厂商标志集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制触摸显示屏905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏905的显示亮度;当环境光强度较低时,调低触摸显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制触摸显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制触摸显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图11中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如图2至图9任一所述的拓扑结构识别的方法。
可选地,该计算机可读存储介质可以包括:只读存储器(Read Only Memory,ROM)、随机存取记忆体(Random Access Memory,RAM)、固态硬盘(Solid State Drives,SSD)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(Resistance Random AccessMemory,ReRAM)和动态随机存取存储器(Dynamic Random Access Memory,DRAM)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
最后应说明的是,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种应用程序的静态资源的加载方法,其特征在于,所述方法包括:
获取所述静态资源在所述应用程序运行过程中的触发统计信息,所述静态资源包括第一静态资源与第二静态资源,所述触发统计信息包括与所述第一静态资源对应的第一触发统计信息,及与所述第二静态资源对应的第二触发统计信息;
根据与所述第一触发统计信息对应的第一比例缓存所述第一静态资源的至少部分内容;以及
根据与所述第二触发统计信息对应的,且不同于所述第一比例的第二比例缓存所述第二静态资源的至少部分内容;
若所述第一触发统计信息符合第一条件,所述第一静态资源被所述应用程序调用后,保持所述第一静态资源的至少部分内容的缓存状态,更新所述第一触发统计信息;
根据更新后的第一触发统计信息更新所述第一比例并根据更新后的所述第一比例缓存所述第一静态资源的至少部分内容。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第二触发统计信息符合第二条件,所述第二静态资源被所述应用程序调用后,释放缓存的所述第二静态资源的至少部分内容。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第二静态资源被所述应用程序调用后,更新所述第二触发统计信息。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述第二触发统计信息更新所述第二比例并根据更新后的所述第二比例缓存所述第二静态资源的至少部分内容。
5.根据权利要求1所述的方法,其特征在于,所述静态资源还包括未被缓存的第三静态资源,所述触发统计信息包括与所述第三静态资源对应的第三触发统计信息,所述方法还包括:
若所述第三触发统计信息满足第三条件,所述第三静态资源被所述应用程序调用后,缓存所述第三静态资源的至少部分内容。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述第三静态资源被所述应用程序调用后更新所述第三触发统计信息。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若当前无足够的存储空间缓存所述第三静态资源的至少部分内容时,根据所述触发统计信息从所述缓存空间内选取满足条件的缓存内容进行释放处理。
8.一种应用程序静态资源的加载装置,其特征在于,包括:
信息获取模块,用于获取所述静态资源在所述应用程序运行过程中的触发统计信息,所述静态资源包括第一静态资源与第二静态资源,所述触发统计信息包括与所述第一静态资源对应的第一触发统计信息,及与所述第二静态资源对应的第二触发统计信息;以及
加载模块,用于根据与所述第一触发统计信息对应的第一比例将所述第一静态资源的至少部分内容缓存至缓存空间内;以及根据与所述第二触发统计信息对应的,且不同所述第一比例的第二比例将所述第二静态资源的至少部分内容缓存至缓存空间内;
所述加载模块还用于在所述第一触发统计信息符合第一条件,所述第一静态资源被所述应用程序调用后,保持所述第一静态资源的至少部分内容的缓存状态,更新所述第一触发统计信息;以及根据更新后的第一触发统计信息更新所述第一比例并根据更新后的所述第一比例缓存所述第一静态资源的至少部分内容。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行如权利要求1-7任一项所述的方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的方法。
CN202010028336.4A 2020-01-10 2020-01-10 静态资源加载方法、装置、计算机设备及存储介质 Active CN111198729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010028336.4A CN111198729B (zh) 2020-01-10 2020-01-10 静态资源加载方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010028336.4A CN111198729B (zh) 2020-01-10 2020-01-10 静态资源加载方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111198729A CN111198729A (zh) 2020-05-26
CN111198729B true CN111198729B (zh) 2021-07-20

Family

ID=70746871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010028336.4A Active CN111198729B (zh) 2020-01-10 2020-01-10 静态资源加载方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111198729B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297431A (zh) * 2013-05-24 2013-09-11 南京邮电大学 一种基于云服务器群的流媒体视频点播副本混合缓存策略
CN103870470A (zh) * 2012-12-11 2014-06-18 腾讯科技(深圳)有限公司 一种加载应用程序的资源文件的方法和加载装置
CN105760199A (zh) * 2016-02-23 2016-07-13 腾讯科技(深圳)有限公司 一种应用资源加载方法及其设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957712B (zh) * 2011-08-17 2016-04-20 阿里巴巴集团控股有限公司 网站资源加载方法和系统
CN102541602A (zh) * 2011-12-28 2012-07-04 用友软件股份有限公司 界面的预加载装置和预加载方法
US10650079B2 (en) * 2017-11-01 2020-05-12 Cisco Technology, Inc. Resource cache classification using machine learning
SG10201800991VA (en) * 2018-02-05 2019-09-27 Voxp Pte Ltd System, method and device for provision and management of web resource

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870470A (zh) * 2012-12-11 2014-06-18 腾讯科技(深圳)有限公司 一种加载应用程序的资源文件的方法和加载装置
CN103297431A (zh) * 2013-05-24 2013-09-11 南京邮电大学 一种基于云服务器群的流媒体视频点播副本混合缓存策略
CN105760199A (zh) * 2016-02-23 2016-07-13 腾讯科技(深圳)有限公司 一种应用资源加载方法及其设备

Also Published As

Publication number Publication date
CN111198729A (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
CN108769562B (zh) 生成特效视频的方法和装置
US20220159323A1 (en) Method for pre-loading content data, and electronic device
KR102361885B1 (ko) 전자 장치 및 전자 장치 제어 방법
CN110147380B (zh) 数据更新方法、装置、服务器以及存储介质
KR102480895B1 (ko) 전자 장치 및 전자 장치의 동작 제어 방법
CN111327694B (zh) 文件上传方法、装置、存储介质及电子设备
CN110569220B (zh) 游戏资源文件的展示方法、装置、终端及存储介质
US11915017B2 (en) Method for switching theme of application and electronic device
CN110673944B (zh) 执行任务的方法和装置
CN111265885B (zh) 资源显示方法、资源发送方法、装置、设备及存储介质
CN108845777B (zh) 播放帧动画的方法和装置
CN111459410B (zh) 内存空间分配方法、装置、电子设备及存储介质
CN110381155B (zh) 任务管理方法、装置、存储介质及终端
CN108243489A (zh) 一种拍照控制方法及移动终端
CN111198729B (zh) 静态资源加载方法、装置、计算机设备及存储介质
CN111597797A (zh) 社交圈消息的编辑方法、装置、设备及介质
CN113766275B (zh) 视频剪辑方法、装置、终端及存储介质
WO2023020120A1 (zh) 动作效果的显示方法、装置、设备、介质及程序产品
CN110032421B (zh) 内存中图集的管理方法、装置、终端及存储介质
CN111711841B (zh) 图像帧播放方法、装置、终端及存储介质
CN111641853B (zh) 多媒体资源加载方法、装置、计算机设备及存储介质
CN114388001A (zh) 多媒体文件的播放方法、装置、设备及存储介质
CN110519319B (zh) 一种分裂分区的方法及装置
CN112669884A (zh) 音频数据处理方法、装置、设备及存储介质
CN114071224A (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