一种应用程序加速方法、装置、终端及存储介质与流程

文档序号:15462259发布日期:2018-09-18 18:27阅读:165来源:国知局

本发明涉及数据读写领域,具体涉及一种应用程序加速方法、装置、终端及存储介质。



背景技术:

应用程序加速是指,在应用程序启动时,将需加载的使用文件进行缓存,从而应用程序在加载使用文件时,对于已缓存的使用文件,则可直接从缓存中加载,减少磁盘的读写,实现应用程序的加速目的。

目前在实现应用程序加速时,缓存的使用文件一般是固定设置的;这种方式虽然可在一定程度上实现了应用程序加速,但仅是针对固定缓存的使用文件,应用程序加速的适用性较低,对于应用程序可能使用的其他使用文件,目前的应用程序加速方式均无法适用;因此如何提高应用程序加速的适用性和效果,成为了本领域技术人员需要考虑的问题。



技术实现要素:

有鉴于此,本发明实施例提供一种应用程序加速方法、装置、终端及存储介质,以提高应用程序加速的适用性和效果。

为实现上述目的,本发明实施例提供如下技术方案:

一种应用程序加速方法,包括:

获取目标应用程序的各使用文件的磁盘历史加载记录;

根据各使用文件的磁盘历史加载记录,确定各使用文件在目标应用程序下次运行时的加载可能性;

根据各使用文件的加载可能性确定目标使用文件,所述目标使用文件的加载可能性高于非目标使用文件的加载可能性;

缓存所述目标使用文件,以在目标应用程序下次运行且加载所述目标使用文件时,从缓存中加载所述目标使用文件。

本发明实施例还提供一种应用程序加速装置,包括:

加载记录获取模块,用于获取目标应用程序的各使用文件的磁盘历史加载记录;

加载可能性确定模块,用于根据各使用文件的磁盘历史加载记录,确定各使用文件在目标应用程序下次运行时的加载可能性;

目标使用文件确定模块,用于根据各使用文件的加载可能性确定目标使用文件,所述目标使用文件的加载可能性高于非目标使用文件的加载可能性;

缓存模块,用于缓存所述目标使用文件,以在目标应用程序下次运行且加载所述目标使用文件时,从缓存中加载所述目标使用文件。

本发明实施例还提供一种终端,包括:至少一个存储器和至少一个处理芯片;所述存储器存储有程序,所述处理芯片调用所述程序,以实现上述所述的应用程序加速方法。

本发明实施例还提供一种存储介质,所述存储介质记录有适于处理芯片执行的程序,以实现上述所述的应用程序加速方法。

基于上述技术方案,本发明实施例提供的应用程序加速方法,可获取目标应用程序的各使用文件的磁盘历史加载记录,根据各使用文件的磁盘历史加载记录,确定各使用文件在目标应用程序下次运行时的加载可能性,从而根据各使用文件的加载可能性确定目标使用文件,使得所确定的目标使用文件的加载可能性高于非目标使用文件的加载可能性,以便目标应用程序下次运行且加载所述目标使用文件时,可从缓存中加载,而不必从磁盘中加载目标使用文件,为目标应用程序的下次运行进行加速。

由于各使用文件在目标应用程序下次运行时的加载可能性,是基于各使用文件的磁盘历史加载记录分析确定的,因此可通过对大量历史加载记录进行数据分析,使得所确定的各使用文件的加载可能性更为精准;从而通过将加载可能性高的目标使用文件进行缓存,可使得缓存的目标使用文件极大概率的在目标应用程序下次运行时被加载,提升了应用程序加速的精准性、适用性和效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的应用程序加速方法的一种实现示例;

图2为本发明实施例提供的应用程序加速方法的流程图;

图3为目标使用文件的确定示例图;

图4为发明实施例提供的应用程序加速方法的另一流程图;

图5为确定各使用文件的加载可能性的方法流程图;

图6为确定使用文件的加载可能性的示例图;

图7为本发明实施例提供的目标应用程序加速方法的再一流程图;

图8为跨应用程序加载缓存文件的示例图;

图9为文件路径的匹配方法流程图;

图10为使用可读写缓存读写数据的示例图;

图11为可读写缓存写入数据至磁盘的流程图;

图12为可读写缓存写入数据至磁盘的另一流程图;

图13为直接写入数据至磁盘的流程图;

图14为本发明实施例提供的应用程序加速方法的应用示例图;

图15为本发明实施例提供的应用程序加速装置的结构框图;

图16为本发明实施例提供的应用程序加速装置的另一结构框图;

图17为本发明实施例提供的应用程序加速装置的再一结构框图;

图18为本发明实施例提供的应用程序加速装置的又一结构框图;

图19为终端的硬件结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为解决背景技术提出的技术问题,本发明的发明人曾考虑过,对应用程序上次使用的使用文件进行缓存,从而便于应用程序在下次运行时直接加载缓存中的使用文件的思路;但发明人经进一步考虑发现,这种思路存在缺陷:虽然应用程序上次使用的使用文件,可能在应用程序下次运行时被使用,但应用程序启动运行时,基于用户操作的随机性,应用程序受用户操作所加载的使用文件有可能是随机的,因此直接缓存应用程序上次使用的使用文件,来加速应用程序的下次运行这种解决思路较为片面,精准性并不高;

为进一步解决上述缺陷,本发明的发明人经过研究思考,提出一种新型的应用程序加速思路:通过对应用程序的各使用文件的磁盘历史加载记录进行监控,基于对各使用文件的磁盘历史加载记录进行分析,确定出应用程序的各使用文件在应用程序下次运行时的加载可能性,从而缓存加载可能性高的使用文件,以便应用程序下次运行时可直接从缓存中对加载可能性高的使用文件进行加载。

需要说明的是,发明人提出的新型的应用程序加速思路,与缓存应用程序上次使用的使用文件的思路存在本质区别;直接缓存应用程序上次使用的使用文件的思路,是单纯的基于应用程序的上次运行的使用情况,缺少数据分析过程,缓存的使用文件较为片面,精准性不高;

发明人提出的新型的应用程序加速思路,通过引入对磁盘历史加载记录的分析,可从大数据分析的角度,更为精准的确定出各使用文件在应用程序下次运行时的加载可能性,通过缓存加载可能性高的使用文件,可使得缓存的使用文件在应用程序下次运行时具有较高的被加载概率,可显著的提升应用程序下次运行的加速效果。因此,发明人提出的新型的应用程序加速思路,与缓存应用程序上次使用的使用文件的思路是两种不同的技术导向,存在本质差异。

基于上述提出的新型的应用程序加速思路,本发明实施例提供的应用程序加速方法,可基于目标应用程序的各使用文件的磁盘历史加载记录,预判出各使用文件在目标应用程序下次运行时的加载可能性(即目标应用程序下次启动过程中,和/或,目标应用程序下次启动后使用过程中,加载各使用文件的加载可能性),从而优先将加载可能性高的使用文件进行缓存,使得目标应用程序下次运行时,可直接从缓存中读取这些加载可能性高的使用文件,减少磁盘的读写,提升应用程序加速的适用性和效果。

基于上述思路,图1示出了由终端实现本发明实施例提供的应用程序加速方法的一种可选实现示例,如图1所示:

磁盘读写监控进程可对目标应用程序的各使用文件的磁盘历史加载记录进行监控,磁盘历史加载记录如磁盘历史读写记录等;

从而在终端的操作系统重新启动后,或目标应用程序关闭后,常驻服务进程(常驻服务进程可随操作系统启动而启动,该常驻服务进程可以是注册成系统服务的目标应用程序的进程,也可以是其他形式的常驻系统的服务进程)可根据磁盘读写监控进程所监控的各使用文件的磁盘历史加载记录,确定各使用文件在目标应用程序下次运行时的加载可能性,从而根据各使用文件的加载可能性确定目标使用文件,所确定的目标使用文件的加载可能性高于非目标使用文件的加载可能性(即目标使用文件为各使用文件中,加载可能性高的使用文件);进而常驻服务进程可将所述目标使用文件进行缓存;

目标应用程序下次运行时,若需要加载目标使用文件,则可从缓存中加载目标使用文件,避免从磁盘加载目标使用文件的情况,减少磁盘的读写,实现目标应用程序的加速;

上述所指的磁盘读写监控进程,常驻服务进程可以是终端在运行的进程服务,具体可由终端的处理芯片执行相应的程序代码实现。

上述示例是以终端的操作系统重新启动,或目标应用程序关闭作为前提条件,来确定目标应用程序下次运行时加载可能性高的目标使用文件,但这仅是可选的前提条件;本发明实施例也可在目标应用程序处于运行状态,但未使用时长达到一定时长时,触发确定目标应用程序下次运行时加载可能性高的目标使用文件。

基于上述实现应用程序加速的核心思路,图2示出了本发明实施例提供的应用程序加速方法的一种可选流程,该方法可应用于终端,具体可由终端的常驻服务进程实现;参照图2,本发明实施例提供的应用程序加速方法可以包括:

步骤S10、获取目标应用程序的各使用文件的磁盘历史加载记录。

目标应用程序可以是本发明实施例待加速的应用程序,可以是终端所安装的应用程序中任一指定的应用程序,如浏览器程序、即时通讯程序等;

在本发明实施例中,磁盘读写监控进程可实时或定时的对目标应用程序的各使用文件的磁盘加载(包括读和写)进行监控,监控到各使用文件的磁盘加载记录,从而随着时间推移,可监控到各使用文件的磁盘历史加载记录;并且各使用文件的磁盘历史加载记录,可随磁盘读写监控进程的不断监控而不断增加;

作为一种可选实现,本发明实施例可在操作系统启动后或目标应用程序关闭后,实现目标应用程序缓存的使用文件的更新;基于此,在操作系统启动后,或目标应用程序关闭后,终端可响应操作系统启动或目标应用程序关闭,获取目标应用程序的各使用文件的磁盘历史加载记录;由于此时目标应用程序处于未运行状态,因此可通过常驻服务进程获取目标应用程序的各使用文件的磁盘历史加载记录,如使用目标应用程序的常驻服务进程;

进一步,由于近期的使用情况,更能反映使用文件在目标应用程序下次运行时的加载可能性,因此本发明实施例也可获取距当前设定时间段内,目标应用程序的各使用文件的磁盘历史加载记录,而不一定获取各使用文件的所有磁盘历史加载记录。

作为一种可选实现,本发明实施例可在操作系统启动后或目标应用程序关闭后的一定时间(时间数值具体可根据实际情况设定),通过常驻服务进程获取距当前设定时间段内,目标应用程序的各使用文件的磁盘历史加载记录;

当然,本发明实施例也可支持目标应用程序处于运行状态,但未使用时长达到一定时长时(如用户未操作时长达到一定时长),获取目标应用程序的各使用文件的磁盘历史加载记录,来实现缓存的使用文件的更新。

在本发明实施例中,目标应用程序的使用文件可以是目标应用程序在启动时和/或启动后可能使用的文件,诸如:目标应用程序的程序文件(如启动文件、dll文件等),用户数据文件(如用户设置文件,用户操作历史记录文件等),目标应用程序所使用的系统文件,所使用的第三方程序文件(如目标应用程序所调用的第三方输入法、字体、插件等)等;目标应用程序的使用文件的形式可以根据目标应用程序的程序类型和程序设计而定,并无固定限制;

可选的,使用文件的磁盘历史加载记录可以包括:磁盘历史每次读写数据所对应的使用文件、使用文件的偏移量、数据大小、加载时间等。

步骤S11、根据各使用文件的磁盘历史加载记录,确定各使用文件在目标应用程序下次运行时的加载可能性。

可选的,基于各使用文件的磁盘历史加载记录,本发明实施例可确定各使用文件的使用程度,以及各使用文件的加载加速效率;使用文件的使用程序可至少指示使用文件的加载次数,当然还可指示使用文件的数据使用覆盖率;使用文件加载加速效率可指示使用文件从缓存加载相比于从磁盘加载所节约的时间;

本发明实施例可基于使用文件的使用程度及加载加速效率,均与使用文件的加载可能性呈正相关关系的原则,确定各使用文件在目标应用程序下次运行时的加载可能性;如使用文件的使用程度及加载加速效率越高,则使用文件的加载可能性越高。

步骤S12、根据各使用文件的加载可能性确定目标使用文件,所述目标使用文件的加载可能性高于非目标使用文件的加载可能性。

可选的,所确定的目标使用文件的数量可以为至少一个,优选为多个。

步骤S13、缓存所述目标使用文件,以在目标应用程序下次运行且加载所述目标使用文件时,从缓存中加载所述目标使用文件。

可选的,作为确定目标使用文件的一种可选实现,本发明实施例可设定目标应用程序占用的缓存空间大小,如可在内核内存中为目标应用程序分配内存占用区域,并设定内存占用区域的大小(即目标应用程序占用的缓存空间大小);

本发明实施例可将目标应用程序占用的缓存空间大小的部分或全部用来缓存使用文件,为便于描述,可称缓存中用于缓存使用文件的空间大小为第一缓存空间大小,第一缓存空间大小可以是部分或全部的目标应用程序占用的缓存空间大小;在此情况下,本发明实施例可根据加载可能性从高至低的顺序,缓存使用文件,直至缓存的使用文件的大小趋近第一缓存空间大小;

需要说明的是,缓存的使用文件的大小并不一定能达到第一缓存空间大小,而是以缓存的使用文件的大小趋近但不大于第一缓存空间大小为缓存终止条件;

相应的,本发明实施例可根据各使用文件的加载可能性,将总文件大小趋近第一缓存空间大小且加载可能性最高的多个使用文件,确定为所述目标使用文件;

作为一种示例,如图3所示,可设目标应用程序用于缓存使用文件的第一缓存空间大小为30M(兆),可将使用文件按照加载可能性从高至低进行排序,如排序后使用文件1至15的总文件大小为29M,而使用文件1至16的总文件大小为31M,则可选取总文件大小趋近30M的使用文件1至15作为目标使用文件,并进行缓存。

作为另一种可选实现,本发明实施例可指定目标使用文件的设定数量,将加载可能性最高的设定数量的多个使用文件,确定为所述目标使用文件并进行缓存;

作为再一种可选实现,本发明实施例将使用文件按照加载可能性从高至低进行排序后,可将排序处于前N位(N值可根据实际情况设定,使用文件的加载可能性越高,则排序越靠前)的多个使用文件作为所述目标使用文件并进行缓存。

本发明实施例根据各使用文件的加载可能性确定目标使用文件的方式并不受限,只要满足所确定的目标使用文件的加载可能性高于非目标使用文件的加载可能性即可,对于目标使用文件的数量和确定方式本发明实施例并不限制,具体可根据实际情况选用。

在将目标使用文件进行缓存后,目标应用程序下次运行时,对于目标使用文件的加载则可从缓存中实现,而不必从磁盘中加载,可以极大的减小磁盘读写。

本发明实施例提供的应用程序加速方法,可获取目标应用程序的各使用文件的磁盘历史加载记录,根据各使用文件的磁盘历史加载记录,确定各使用文件在目标应用程序下次运行时的加载可能性,从而根据各使用文件的加载可能性确定目标使用文件,使得所确定的目标使用文件的加载可能性高于非目标使用文件的加载可能性,以便目标应用程序下次运行且加载所述目标使用文件时,可从缓存中加载,而不必从磁盘中加载目标使用文件,为目标应用程序的下次运行进行加速。

由于各使用文件在目标应用程序下次运行时的加载可能性,是基于各使用文件的磁盘历史加载记录分析确定的,因此可通过对大量历史加载记录进行数据分析,使得所确定的各使用文件的加载可能性更为精准;从而通过将加载可能性高的目标使用文件进行缓存,可使得缓存的目标使用文件极大概率的在目标应用程序下次运行时被加载,提升了应用程序加速的精准性、适用性和效果。

进一步,本发明实施例提供的应用程序加速方法可在终端的操作系统启动后或目标应用程序关闭后执行,基于目标应用程序的各使用文件的磁盘历史加载记录,对缓存的目标应用程序的使用文件进行更新,使得缓存的使用文件为目标应用程序下次运行时加载可能性高的使用文件,减少目标应用程序下次运行时的磁盘读写。由于,本发明实施例是每次在终端的操作系统启动后,或每次在目标应用程序关闭后,将目标应用程序下次运行时加载可能性高的使用文件进行缓存,从而可针对目标应用程序的下次运行,实现缓存的使用文件的针对性更新,提升目标应用程序每次运行时加速的适用性和效果。

需要说明的是,目前存在在应用程序启动时,将需加载的使用文件进行缓存的加速方式;这种方式导致应用程序在启动时,启动所需的使用文件(如应用程序的启动文件、dll文件等)仍然需要从磁盘读取,磁盘所占用读写时间仍然是算在应用程序的启动时间内,因此对于应用程序的启动加速效果较低;

本发明实施例在操作系统启动后或应用程序关闭后,进行应用程序缓存的使用文件的更新,这样就可保障应用程序在下次启动时,可直接基于缓存的使用文件(如缓存的历史高频使用的启动文件、dll文件等)进行启动加速,从而节约了应用程序启动时磁盘的读写时间,可明显的提升应用程序的启动加速效果。

作为确定各使用文件的加载可能性的一种可选实现,本发明实施例在获取各使用文件的磁盘历史加载记录后,可基于各使用文件的使用程度以及加载加速效率,确定各使用文件的加载可能性;可选的,图4示出了本发明实施例提供的应用程序加速方法的另一可选流程,参照图4,该方法可以包括:

步骤S20、获取目标应用程序的各使用文件的磁盘历史加载记录。

可选的,本发明实施例可获取距当前设定时间段内,目标应用程序的各使用文件的磁盘历史加载记录;也可获取目标应用程序的各使用文件的所有磁盘历史加载记录。

步骤S21、根据各使用文件的磁盘历史加载记录,确定各使用文件的使用程度以及加载加速效率。

在本发明实施例中,使用文件的使用程度可至少指示使用文件的加载次数,当然还可结合指示使用文件的数据使用覆盖率。

使用文件的加载次数可根据使用文件的磁盘历史加载记录确定,即从各使用文件的磁盘历史加载记录中确定出各使用文件的加载次数;

使用文件的数据使用覆盖率是指使用文件中数据被使用的覆盖率;对于一使用文件而言,该使用文件的历史加载过程中,可能仅有部分数据被使用,而另一部分数据未被使用,使用文件的数据使用覆盖率衡量的是,使用文件中被使用的数据占使用文件的总数据的比例;例如,一个大小为100字节的使用文件,在该使用文件的历史加载过程中,有60个字节的数据被使用到了,那么该使用文件的数据使用覆盖率就60%。

作为一种可选实现,本发明实施例可根据各使用文件的磁盘历史加载记录,确定各使用文件的加载次数及数据使用覆盖率,从而分别根据各使用文件的加载次数及数据使用覆盖率,确定出各使用文件的使用程度,并使得加载次数及数据使用覆盖率,均与的使用文件的使用程度呈正相关关系,如加载次数及数据使用覆盖率越高,则使用文件的使用程度越高;

当然,本发明实施例也可仅根据各使用文件的加载次数,确定出各使用文件的使用程度。

在确定各使用文件的加载次数及数据使用覆盖率后,作为一种可选实现,本发明实施例可设置加载次数权重及数据使用覆盖率权重,对于任一使用文件,可将加载次数与加载次数权重的结合结果(如相乘结果),加上,数据使用覆盖率与数据使用覆盖率权重的结合结果(如相乘结果),以得到各使用文件的使用程度;

由于使用覆盖率是比值形式,而加载次数是次数的数值形式,可考虑数据使用覆盖率权重高于加载次数权重。

当然,设置加载次数权重及数据使用覆盖率权重仅是一种可选方式,本发明实施例也可直接将使用文件的加载次数与数据使用覆盖率相结合(如相加或相乘等其他结合运算方式),得到使用文件的使用程度。

在本发明实施例中,使用文件的加载加速效率可指示使用文件从缓存加载相比于从磁盘加载所节约的时间;作为一种可选实现,对于任一使用文件,可确定使用文件的内存占用大小与使用文件节约的磁盘加载时间的第一比值,以得到各使用文件相应的第一比值,从而可分别根据各使用文件相应的第一比值,确定各使用文件的加载加速效率。

示例的,一使用文件相应的第一比值可表示为:使用文件的内存占用大小(字节)/使用文件节约的磁盘访问时间(毫秒);

其中,使用文件节约的磁盘加载时间是根据使用文件的磁盘历史加载记录计算,如加载dll文件时,监控到dll文件需要10秒钟才能从磁盘中加载完,而dll文件若在缓存中,仅只需要1秒就可以加载完,那么加载dll文件节约的磁盘加载时间为10-1=9秒。

可选的,本发明实施例可将使用文件的内存占用大小与使用文件节约的磁盘加载时间的第一比值,作为使用文件的加载加速效率;

而在另一种可选实现上,本发明实施例也可设置加载加速效率权重,对于任一使用文件,将使用文件的内存占用大小与使用文件节约的磁盘加载时间的第一比值,与加载加速效率权重的相结合(如相乘),以得到各使用文件的加载加速效率。

可选的,本发明实施例可设置加载加速效率权重低于加载次数权重,而数据使用覆盖率权重高于加载次数权重。

步骤S22、分别根据各使用文件的使用程度以及加载加速效率,确定各使用文件在目标应用程序下次运行时的加载可能性;其中,使用文件的使用程度及加载加速效率,均与使用文件的加载可能性呈正相关关系。

可选的,对于一使用文件,在得到该使用文件的使用程度及加载加速效率后,可将该使用文件的使用程度及加载加速效率相加,得到该使用文件的加载得分,以此得到各使用文件的加载得分;

从而可分别根据各使用文件的加载得分,确定各使用文件的加载可能性。

示例的,一使用文件的加载得分可表示为:加载次数权重*加载次数+数据使用覆盖率权重*数据使用覆盖率+加载加速效率权重*使用文件的内存占用大小与使用文件节约的磁盘加载时间的第一比值;

其中,使用程度的一种可选表示为:加载次数权重*加载次数+数据使用覆盖率权重*数据使用覆盖率;加载加速效率的一种可选表示为:加载加速效率权重*使用文件的内存占用大小与使用文件节约的磁盘加载时间的第一比值。

作为一种可选实现,本发明实施例可将各使用文件的加载得分,直接作为各使用文件的加载可能性。

而作为另一种可选实现,如果考虑历史加载时间越近,则使用文件越有可能被加载的情况,即根据用户使用习惯,用户近期使用的文件在后续使用的可能性越高;则对于各使用文件,在得到各使用文件的使用程度及加载加速效率后,可分别将各使用文件的使用程度与加载加速效率相加,得到各使用文件的加载得分;再分别对各使用文件的加载得分进行时间衰减处理,使得最近加载时间越早的使用文件处理后的加载得分越低,得到各使用文件的加载可能性,从而保障加载可能性越高的使用文件,不仅使用程度与加载加速效率越高,且最近加载时间越晚(即加载可能性越高的使用文件越是近期加载的使用文件)。

步骤S23、根据各使用文件的加载可能性确定目标使用文件,所述目标使用文件的加载可能性高于非目标使用文件的加载可能性。

步骤S24、缓存所述目标使用文件,以在目标应用程序下次运行且加载所述目标使用文件时,从缓存中加载所述目标使用文件。

可以看出,本发明实施例可在操作系统启动后或目标应用程序关闭后,基于目标应用程序的各使用文件的磁盘历史加载记录,重新进行各使用文件的使用程度以及加载加速效率的确定,基于重新确定的各使用文件的使用程度以及加载加速效率,重新确定各使用文件在目标应用程序下次运行时的加载可能性,并使得使用文件的使用程度及加载加速效率,均与使用文件的加载可能性呈正相关关系;

从而在根据各使用文件的加载可能性,缓存加载可能性高的目标使用文件后,可使得缓存后的目标使用文件为目标应用程序下次运行时极可能加载的使用文件,极大的减小磁盘的读写。

需要指出的是,特别是在目标应用程序存在新增使用文件(如新增输入法、字体等),或者,使用文件的数据内容发生变化(如启动文件等程序文件升级更新)的情况下,本发明实施例可在操作系统启动或目标应用程序关闭后,极大可能的将目标应用程序上一次运行时从磁盘加载使用的新增使用文件、数据内容发生变化的使用文件进行缓存,保障对于新增使用文件或者数据内容发生变化的使用文件的加载加速,而这种效果是传统的固定设置缓存的使用文件的方式所无法达到的。

优选的,作为各使用文件的加载可能性具体确定的一种可选实现,图5示出了确定各使用文件的加载可能性的一种可选方法流程,参照图5,该方法可以包括:

步骤S30、根据各使用文件的磁盘历史加载记录,分别确定各使用文件的加载次数及数据使用覆盖率。

可选的,一使用文件的数据使用覆盖率可以是:该使用文件中数据被使用的覆盖率;即在所述磁盘历史加载记录所对应的历史加载过程中,该使用文件中被使用的数据占该使用文件的总数据的比例。

步骤S31、对于任一使用文件,将加载次数与加载次数权重的结合结果,加上,数据使用覆盖率与数据使用覆盖率权重的结合结果,以得到各使用文件的使用程度。

步骤S32、根据各使用文件的磁盘历史加载记录,分别确定各使用文件的内存占用大小与节约的磁盘加载时间的比值,得到各使用文件相应的第一比值。

为便于描述,本发明实施例可称使用文件相应的第一比值为:使用文件的内存占用大小与节约的磁盘加载时间的比值。

步骤S33、对于任一使用文件,确定相应的第一比值与加载加速效率权重的结合结果,以得到各使用文件的加载加速效率。

需要注意的是,步骤S30至步骤S31,步骤S32至步骤S33为分别针对使用文件的使用程度和加载加速效率的确定过程;步骤S30至步骤S31,步骤S32至步骤S33可以认为是两种不同情况的处理,并没有先后顺序之分。

步骤S34、对于任一使用文件,将使用程度与加载加速效率相加,以得到各使用文件的加载得分。

作为一种示例,可设加载次数权重为80,数据使用覆盖率权重为300,加载加速效率权重为60,则一使用文件的加载得分可以为:80*加载次数+300*数据使用覆盖率+60*使用文件的内存占用大小(字节)/节约的磁盘加载时间(毫秒)。

步骤S35、分别对各使用文件的加载得分进行时间衰减处理,使得最近加载时间越早的使用文件,经时间衰减处理后的加载得分越低,以得到各使用文件的加载可能性。

一使用文件的加载可能性可以是该使用文件的加载得分经时间衰减处理后的得分结果;加载得分的时间衰减处理方式有多种,本发明实施例并不限制,只要满足加载时间越早的使用文件的加载得分,经过时间衰减处理后分值越低,而加载时间越晚的使用文件的加载得分,经过时间衰减处理后的分值越高即可。

可选的,对于任一使用文件,使用文件的加载得分的一种时间衰减处理方式可以是:确定所获取的磁盘历史加载记录相应的监控时间;对于任一使用文件,确定最近一次加载时间距当前的间隔时间,将监控时间减去该间隔时间,得到时间差值,将所得到的时间差值与监控时间的比值乘以相应的加载得分,以得到各使用文件的加载可能性。

其中,监控时间是指所获取的磁盘历史加载记录相应的监控时间;使用文件最近一次加载时间距当前的间隔时间是指,使用文件最近一次加载的时间与当前时间的间隔;作为一种实现,间隔时间可采用天数表示,如间隔时间可以表示为:当前日期减去使用文件最近一次加载的日期;

作为一种示例,可设监控时间为15天(即所获取的磁盘历史加载记录是,15天所监控的磁盘加载记录),则一使用文件的加载可能性的表示示例可以为:加载得分*(15-(当前日期-最后一次加载的日期)/15)。

显然,图5所示各使用文件的加载可能性的确定方式仅是可选的,本发明实施例也可不使用加载次数权重和数据使用覆盖率权重,确定使用文件的使用程度(如可直接将使用文件的加载次数和数据使用覆盖率相结合,来确定使用文件的使用程度);当然,也可不使用加载加速效率权重,确定使用文件的加载加速效率(如可直接使用使用文件相应的第一比值,作为使用文件的加载加速效率);

当然,还可不对加载得分进行时间衰减处理,而是直接将使用文件的加载得分作为使用文件的加载可能性。

可选的,上述内容中,所获取的目标应用程序的各使用文件的磁盘历史加载记录可以是:距当前设定时间段内,目标应用程序的各使用文件的磁盘历史加载记录;即在指定设定时间段后,可获取距当前设定时间段内,目标应用程序的各使用文件的磁盘历史加载记录;相应的,所获取的磁盘历史加载记录相应的监控时间可与设定时间段相应;

例如设定时间段为15天(具体数值可根据实际情况指定),则可获取距当前15天内,目标应用程序的各使用文件的磁盘历史加载记录;即基于15天内所监控的目标应用程序的各使用文件的磁盘历史加载记录,进行缓存的使用文件的更新;

当然,本发明实施例也可支持获取目标应用程序的各使用文件的所有磁盘历史加载记录,而不限于仅获取距当前设定时间段内的磁盘历史加载记录。

作为图5所示方法的一种实现示例,在获取距当前15天内的磁盘历史加载记录的情况下,图6示出了对一使用文件确定加载可能性的示例,如图6所示:

在操作系统启动后或目标应用程序关闭后,终端可获取距当前15天内,目标应用程序的各使用文件的磁盘历史加载记录;各使用文件的磁盘历史加载记录可以包括:距当前15天内,磁盘历史每次读写数据所加载的使用文件、数据大小、加载时间等;

对于目标应用程序的任一使用文件,可根据距当前15天内,该使用文件的磁盘历史加载记录,确定出距当前15天内,该使用文件的加载次数,数据使用覆盖率,及使用文件的内存占用大小与节约的磁盘加载时间的第一比值;

将加载次数与加载次数权重的乘积,加上,数据使用覆盖率与数据使用覆盖率权重的乘积,得到该使用文件的使用程度;

将第一比值乘以加载加速效率权重,得到该使用文件的加载加速效率;

将该使用文件的使用程度与加载加速效率相加,得到该使用文件的加载得分;

将使用文件的加载得分*(15天-(当前日期-使用文件最近一次加载的日期)/15天),得到使用文件的加载可能性。

示例的,以设定时间段为15天,当前日期为本月10号,使用文件最近一次加载的日期为本月4号,加载得分为130;则加载得分经过时间衰减处理后,所得到的加载可能性为:130*(15-(10-4))/15=130*(9/15)=78。

需要说明的是,本发明实施例提供的应用程序加速方法可在应用程序新增使用文件的情况下,或者,缓存的使用文件的数据内容发生变化的情况进行适用。

例如,以应用程序为浏览器为例,当用户在浏览器安装了新的翻译插件(也可能是新的输入法,字体,其他形式的插件等)时,由于新的翻译插件极为好用,用户可能频繁的使用新的翻译插件进行翻译;若使用传统的固定缓存使用文件的方式,由于新的翻译插件并不是固定缓存的使用文件,用户在每次启动浏览器调用翻译插件时,只能是从磁盘中加载,这无疑加大了磁盘读写时间;

基于本发明实施例提供的方案,当用户在浏览器安装了新的翻译插件时,基于翻译插件频繁的磁盘历史加载记录,本发明实施例则可在操作系统重新启动后,或浏览器关闭后,在更新缓存的使用文件时,极大可能的将翻译插件对应的使用文件进行缓存,从而使得浏览器下次启动后,可直接从缓存中加载翻译插件的使用文件,实现翻译插件的加载加速,提升浏览器的加速效果。

又如,当浏览器的程序文件存在升级更新,或者用户增加了新的书签文件时,固定缓存的程序文件或书签文件将作废,传统固定缓存使用文件的应用程序加速方式将失效,终端只能从磁盘中加载更新的程序文件或新的书签文件,这无疑加大了磁盘读写时间;

基于本发明实施例提供的方案,当程序文件升级更新,或者增加了新的书签文件时,本发明实施例则可在操作系统重新启动后,或浏览器关闭后,在更新缓存的使用文件时,极大可能的将更新的程序文件或新的书签文件进行缓存,从而使得浏览器下次启动时,可直接从缓存中加载更新的程序文件或新的书签文件,提升浏览器的加速效果。

可以理解的是,不论是固定缓存使用文件或者直接缓存上一次使用的使用文件的方式,均与本发明实施例提供的应用程序加速方法存在思路区别,本发明实施例可更为精准的实现目标应用程序的使用文件的缓存;同时经过测试发现,在浏览器的加速场景下,使用本发明实施例提供的应用程序加速方法,可使得浏览器的启动速度提升60%以上,速度提升明显;同时在试验中也发现,在浏览器速度加快后,浏览器的留存率、卸载率、卡死白屏率等各项指标都得到了显著改善。

在基于上述描述的应用程序加速方法实现目标使用文件的缓存后,本发明实施例可以目标使用文件在磁盘的文件路径作为唯一标识,将目标使用文件记录在缓存列表中;即缓存列表以各目标使用文件在磁盘的文件路径为标识,记录各文件路径相应的目标使用文件;从而通过将缓存列表进行缓存,实现目标使用文件的缓存;

进而目标应用程序在下次运行时,可通过缓存列表来判断需加载的使用文件是否在缓存中,实现存在于缓存中的目标使用文件的加载;

可选的,图7示出了本发明实施例提供的目标应用程序加速方法的再一可选流程,该方法可应用于终端,可在目标使用文件缓存后,且目标应用程序下次运行时执行,具体可由终端的目标应用程序的进程实现;参照图7,该方法可以包括:

步骤S40、获取待加载的使用文件的第一文件路径。

在目标应用程序下次运行时(如目标应用程序下次启动时及下次启动后),对于目标应用程序待加载的使用文件,本发明实施例可获取使用文件的文件路径,本发明实施例可称任一待加载的使用文件的文件路径为第一文件路径;

例如,在目标应用程序的启动过程中,可待加载启动文件、dll文件实现目标应用程序的启动,此时可获取待加载的启动文件、dll文件的第一文件路径;又如,在目标应用程序启动后,基于用户的操作,可获取用户操作所指示的待加载的书签文件、用户数据文件的第一文件路径。

此处所指的第一文件路径是使用文件在磁盘中的文件路径,但本发明实施例并不是基于使用文件在磁盘中的第一文件路径,从磁盘中进行使用文件的加载;而是在缓存列表以各目标使用文件在磁盘的文件路径为标识,记录各文件路径相应的目标使用文件的情况下,基于待加载的使用文件在磁盘中的第一文件路径,实现待加载的使用文件是否被缓存的判断。

步骤S41、判断所述第一文件路径是否与缓存列表中记录的文件路径相匹配。

步骤S42、若所述第一文件路径与缓存列表中记录的文件路径相匹配,从缓存中加载所述第一文件路径相应的目标使用文件。

可选的,若待加载的使用文件的第一文件路径,与缓存列表中记录的文件路径不匹配,则认为待加载的使用文件不在缓存中,可从磁盘中读取所述第一文件路径相应的使用文件。

可以看出,本发明实施例可在目标应用程序待加载使用文件时,对各待加载的使用文件的第一文件路径进行过滤,判断待加载的使用文件的第一文件路径是否与缓存列表中记录的文件路径相匹配,若是,则可认为待加载的使用文件为缓存的目标使用文件,可使用缓存进行待加载的使用文件的加载加速,从缓存中加载出所述第一文件路径相应的目标使用文件(如可从缓存的缓存列表中,加载所述第一文件路径相应的目标使用文件);若否,则认为待加载的使用文件不在缓存中,无法使用缓存进行待加载的使用文件的加载加速,则可基于待加载的使用文件的第一文件路径,从磁盘中加载相应的使用文件。

可选的,本发明实施例可在内核层完成缓存的目标使用文件的加载;相比于传统的在应用层完成缓存的目标使用文件的加载,本发明实施例可将缓存的目标使用文件的加载由应用层转到内核层中完成,从而除可实现目标应用程序对于缓存的使用文件的加载外,还可跨进程的实现缓存的目标使用文件的共享使用;

例如,在对浏览器的目标使用文件进行缓存的情况下,基于内核层完成缓存的目标使用文件的加载,则可实现非浏览器进程对缓存的目标使用文件的加载访问,实现非浏览器进程在访问加载目标使用文件时的加速,提升缓存的目标使用文件的利用率,加快终端整体上的数据加载速度;

示例的,基于本发明实施例提供的应用程序加速方法,可对浏览器下次运行时加载可能性高的目标使用文件在内核内存中进行缓存,如图8所示,在内核内存中缓存了字体文件,则浏览器下次运行时,可使用内核内存中缓存的字体文件实现字体文件的快速加载,便于用户快速的在浏览器中使用该字体文件进行字体输入;同时,在即时通讯应用程序运行时,如果即时通讯应用程序也需要加载该字体文件,则基于内核内存的跨进程支持,即时通讯应用程序也可使用内核内存中缓存的字体文件,实现字体文件的快速加载,而不需从磁盘中加载字体文件;

相应的,在内核内存实现目标使用文件的缓存的情况下,图7所示方法中,获取需加载的使用文件的第一文件路径可以是:响应于目标应用程序的使用文件加载指令,也可以是响应于非目标应用程序的使用文件加载指令,获取需加载的使用文件的第一文件路径。

进一步,为提升待加载的使用文件的第一文件路径与缓存列表中记录的文件路径的匹配效率,本发明实施例提供一种改进的文件路径匹配方式;

可选的,图9示出了文件路径的匹配方法流程,参照图9,该方法可以包括:

步骤S50、获取待加载的使用文件的第一文件路径的字符串长度。

步骤S51、判断缓存列表中是否记录有字符串长度,与第一文件路径的字符串长度相应的至少一个候选文件路径,若否,执行步骤S52,若是,执行步骤S53。

可选的,在内核内存中实现目标使用文件的缓存时,缓存列表中记录的文件路径的字符串表示(UNICODE_STRING)都可自带字符串长度;在获取待加载的使用文件的第一文件路径后,可将第一文件路径的字符串长度与缓存列表中记录的各文件路径的字符串长度进行比对,判断出是否存在字符串长度与第一文件路径的字符串长度相应的候选文件路径,本发明实施例可称缓存列表中记录的与第一文件路径的字符串长度相应的文件路径为,候选文件路径;所确定的候选文件路径的数量为至少一个。

步骤S52、根据所述第一文件路径从磁盘加载相应的使用文件。

如果缓存列表中未记录有与第一文件路径的字符串长度相应的候选文件路径,则说明待加载的使用文件未在内核内存中进行缓存,可从磁盘中加载第一文件路径相应的使用文件。

步骤S53、按照文件路径的低层级目录至高层级目录的顺序,比对第一文件路径与各候选文件路径,判断候选文件路径中是否存在与第一文件路径一致的文件路径,若否,执行步骤S52,若是,执行步骤S54。

在确定缓存列表中记录有第一文件路径的字符串长度相应的候选文件路径后,需进一步比对候选文件路径中是否存在与第一文件路径一致的文件路径(即进行文件路径的一致性比对);

区别于由高层级目标至低层级目标,比对两个文件路径是否一致的方式,本发明实施例在比对第一文件路径与各候选文件路径时,是按照文件路径的低层级目录至高层级目录的比对顺序实现的;

可以理解的是,基于文件路径的特征,文件路径一般是由高层级目录至低层级目录的顺序进行定义的,如一般由盘符/子目录/子目录+…/文件名的方式定义文件路径;如果按照高层级目标至低层级目标的方式,比对两个文件路径是否相同,在两个文件路径的高层级目录下相同(如盘符、子目录等都相同),文件名不同的情况下,需要将高层级的盘符、子目录都比较完后,才会进入真正不同的文件名的比对,文件路径的一致性比对的效率极低;

基于此,本发明实施例是按照文件路径的低层级目录至高层级目录的顺序,比对第一文件路径与各候选文件路径是否相同,从而可在第一文件路径与候选文件路径的低层级目录(如文件名等)不同时,立刻的发现文件路径的不同,极大的提升不同文件路径的筛选效率,提升文件路径一致性比对的效率;

示例的,以如下两个文件路径的比对为例,文件路径A为:C:\Program Files(x86)\Tencent\QQBrowser\9.7.12954.400\icudtl.dat;文件路基径为:C:\Program Files(x86)\Tencent\QQBrowser\9.7.12954.400\libegl.dll;如果从高层级目录至低层级目录进行比对,需要对文件路径A和B进行到第58次的字符比对时,才会遇到两个字符串不同的字母,即i和l,文件路径A和B是否一致的比对效率极低;而如果按照本发明实施例提供的从低层级目录至高层级目录的比对顺序,则可在第一次的字符比对时(即比对到t和l不同),就发现文件路径A和B不同,提升文件路径是否一致的比对效率。

可选的,候选文件路径中不存在与第一文件路径相同的文件路径,说明需加载的使用文件未在内核内存中进行缓存,可从磁盘加载第一文件路径相应的使用文件。

步骤S54、从缓存中加载所述第一文件路径相应的目标使用文件。

候选文件路径中存在与第一文件路径一致的文件路径,说明所述第一文件路径与缓存列表中记录的文件路径相匹配,即待加载的使用文件进行了缓存,则可从缓存中加载第一文件路径相应的目标使用文件,实现需加载的使用文件的加载加速。

需要说明的是,图9所示方法仅是本发明实施例提供的文件路径匹配的一种可选方式,本发明实施例也可支持按照高层级目标至低层级目标的顺序,进行文件路径的一致性比对。

为进一步提升应用程序加速效果,本发明实施例可使用可读写缓存进行目标使用文件的缓存,可读写缓存同样可适用于内核内存缓存使用文件的情况。

目前传统的应用程序加速方案中,虽然存在缓存使用文件的情况,但一般都是使用自读缓存进行使用文件的缓存,即将使用文件放入自读缓存中;然而,自读缓存的使用对于应用程序写数据的情况加速并不明显;

基于此,本发明实施例使用可读写缓存进行目标使用文件的缓存,使得目标应用程序需要读取目标使用文件时,仍然可从可读写缓存中读取;并且目标应用程序在写数据时,可检测目标应用程序的写数据指令,将写数据指令相应的写入数据写入可读写缓存中,并立即向目标应用程序反馈写数据指令执行完成的响应;通过可读写缓存自带的后台的系统写入线程(可以是异步形式的线程),在写入数据达到一定条件(如达到一定量或达到一定间隔时长后)时,将可读写缓存中的写入数据写入到磁盘中,提升应用程序的写数据加速,避免对磁盘的频繁多次读写,影响磁盘对外的数据吞吐能力;

示例的,如图10所示,以浏览器为例,浏览器针对目标使用文件的读取,可通过可读写缓存实现目标使用文件的读取加速,而浏览器的所有写数据操作,均可直接写入可读写缓存;然后由可读写缓存的系统写入线程,将可读写缓存写入的数据写入到磁盘中。

针对可读写缓存的使用,本发明实施例提供如下改进方式,以提升可读写缓存的加速效果;

可选的,图11示出了可读写缓存写入数据至磁盘的一种可选流程,参照图11,该流程可以包括:

步骤S60、对可读写缓存中的写入数据进行标记。

目标应用程序在使用的过程中,当目标使用文件存在写数据(如对缓存的目标使用文件修改数据或新增数据等)的情况,可将数据写入可读写缓存的目标使用文件,并对写入数据进行标记。

步骤S61、若可读写缓存中同一目标使用文件存在,连续且数据量达到预定数据量的被标记的写入数据,将所述连续且数据量达到预定数据量的被标记的写入数据,写入磁盘。

本发明实施例可实时或定时的检测可读写缓存中,各目标使用文件所写入的数据(可基于目标使用文件中被标记的写入数据,来确定目标使用文件中的写入数据),如果某一目标使用文件中写入的数据连接成片且达到一定规模,则可触发磁盘写操作,将该目标使用文件中写入的数据连接成片且达到一定规模的数据,写入到磁盘;

具体的,本发明实施例可设置预定数据量,当某一目标使用文件存在连续且数据量达到预定数据量的被标记的写入数据,则认为该目标使用文件中写入的数据连接成片且达到一定规模,可触发磁盘写操作,使用系统写入线程,将该目标使用文件的连续且数据量达到预定数据量的被标记的写入数据,写入磁盘中。

可以理解的是,机械磁盘的读写原理是通过机械移动磁头到指定的磁道来上读写所需数据的,而移动磁头的寻道时间,占了磁盘读写一次所用的大部分时间,因此本发明实施例结合了磁盘的该特性,利用可读写缓存进行目标应用程序的写入数据的存储,再尽可能把相邻的写入数据一次写入磁盘,可以极大提高磁盘的写入速度。

可选的,图12示出了可读写缓存写入数据至磁盘的另一种可选流程,参照图12,该流程可以包括:

步骤S70、对可读写缓存中的写入数据进行标记。

步骤S71、在距上一次向磁盘写入数据的时间间隔,达到预定时间间隔时,将可读写缓存中的被标记的写入数据,写入到磁盘。

可选的,上一次向磁盘写入数据可以是如图11所示的,同一目标使用文件存在连续且数据量达到预定数据量的写入数据,或者,虽然未达到图11所示写入磁盘的条件,但已距前次向磁盘写入数据间隔预定时间间隔;

本发明实施例可在距上一次向磁盘写入数据的时间间隔,达到预定时间间隔时,强制把可读写缓存中的被标记的写入数据写入到磁盘,保证在一定时间内缓存和磁盘中的数据一致。

可选的,图12所示方法在执行时,还可根据目标使用文件的重要性区分数据写入磁盘的预定时间间隔,对于重要性较高的目标使用文件(如浏览器的IMPORTANT FILE等使用文件),可以指定较小的预定时间间隔,以将重要性较高的目标使用文件的写入数据较为及时的同步到磁盘;而对于重要性较低的目标使用文件,可兼顾磁盘性能,选择相对较长的预定时间间隔,来进行重要性较低的目标使用文件的写入数据至磁盘的同步,实现更为精准的可读写缓存的写入数据至磁盘的同步;

可选的,为便于描述,本发明实施例可称重要性较高的目标使用文件为第一类目标使用文件,重要性较低的目标使用文件为第二类目标使用文件,即第一类目标使用文件的重要性高于第二类目标使用文件,从而设置第一类目标使用文件相应的预定时间间隔为预定第一时间间隔,第二类目标使用文件相应的预定时间间隔为预定第二时间间隔;从而图12所示方法中,步骤S71的一种可选实现可以如下:

在距上一次向磁盘写入第一类目标使用文件的数据的时间间隔,达到预定第一时间间隔时,将可读写缓存中的第一类目标使用文件被标记的写入数据,写入到磁盘;

在距上一次向磁盘写入第二类目标使用文件的数据的时间间隔,达到预定第二时间间隔时,将可读写缓存中的第二类目标使用文件被标记的写入数据,写入到磁盘;

其中,第一类目标使用文件的重要性高于第二类目标使用文件,且预定第一时间间隔低于预定第二时间间隔。

作为另一种可选实现,由于可读写缓存的空间是有限的,因此当缓存中某一目标使用文件的数据量增长较大时,本发明实施例可将该目标使用文件超过一定增长比例后的写入数据直接写入磁盘中,实现缓存空间的有效利用;

可选的,图13示出了直接写入数据至磁盘的一种可选流程,参照图13,该流程可以包括:

步骤S80、检测可读写缓存中各目标使用文件的数据量增长比例。

可选的,随着对可读写缓存写入数据,可读写缓存中各目标使用文件的数据量将不断的增长,为实现可读写缓存的空间有效利用,本发明实施例可实现或定时的检测可读写缓存中各目标使用文件的数据增长比例;

一目标使用文件的数据增长比例可以是:写入该目标使用文件的写入数据的数据大小/该目标使用文件的原数据大小。

步骤S81、确定数据量增长比例达到预定比例阈值的目标使用文件,将该目标使用文件的后续写入数据写入到磁盘,以维持该目标使用文件的数据量增长比例不超过预定比例阈值。

本发明实施例可设置预定比例阈值,如50%等,预定比例阈值的具体数值可根据实际情况设定;从而在检测到某一目标使用文件的数据量增长比例达到预定比例阈值时,对于后续写入该目标使用文件的数据,可直接触发磁盘写操作,将写入数据写入到磁盘中,以提升可读写缓存的有效利用。

示例的,设预定比例阈值为50%,比如某一目标使用文件的原数据大小为10M,随着向可读写缓存写入数据,若该目标使用文件的数据量增长比例达到50%(即该目标使用文件的数据大小扩充到15M),则如果后续还有写入该目标使用文件的写入数据,则不再缓存,直接将后续写入数据写入到磁盘中,以维持该目标使用文件的数据大小为15M;也就是说,如果目标使用文件的数据大小达到15M,则后面针对目标使用文件的写入数据将直接写入到磁盘,不再写入到可读写缓存中。

可选的,为提升可读写缓存的空间利用率,本发明实施例可将可读写缓存中加载频次低于预定频次的目标使用文件进行释放,以回收缓存空间;即对于缓存的在一段时间内低频使用或没有使用的目标使用文件,本发明实施例可进行释放回收缓存的工作;例如,浏览器的某一程序文件在操作系统启动后进行了缓存,但是在浏览器的使用过程中,程序文件进行了升级更新了,程序文件的文件内容发生了变化,因此缓存的旧的程序文件将作废,这种情况下,浏览器启动后,将不会使用到该程序文件,则可在检测到该程序文件的加载频次低于预定频次时,就该程序文件释放缓存,回收内存,节约系统资源。

进一步,可记录所释放的目标使用文件,并在操作系统启动后,或目标应用程序关闭后,以释放的目标使用文件的磁盘历史加载记录作为部分的输入数据,进行目标应用程序下次运行时各使用文件的加载概率确定。

本发明实施例提供的应用程序加速方法,可根据目标应用程序的各使用文件的磁盘历史加载记录,将目标应用程序下次运行时加载可能性高的使用文件进行缓存,从而可针对目标应用程序的下次运行,实现缓存的使用文件的精准的针对性更新,提升目标应用程序下次运行时加速的适用性、精准性和效果。进一步,可在终端的操作系统启动后,或每次在目标应用程序关闭后,确定目标应用程序下次运行时加载可能性高的使用文件并进行缓存。

同时,可基于改进的文件路径匹配方式,实现待加载的使用文件的文件路径与缓存的目标使用文件的文件路径的一致性比对,提升文件路径匹配的效率,更为高效的识别出待加载的使用文件是否为缓存的目标使用文件,提升目标应用程序加载使用文件时的加速效果。

并且,采用可读写缓存进行目标使用文件的缓存,不仅可支持目标应用程序对缓存的目标使用文件的加载加速,还可支持可读写缓存对目标应用程序写入数据的记录,在目标应用程序写数据时,通过先将数据写入可读写缓存中,并立即反馈目标应用程序写数据完成的响应,再通过可读写缓存依条件的进行数据至磁盘的写入,可减小磁盘的频繁读写,进一步加速目标应用程序的数据读写效果。

作为一种应用示例,以对PC(个人计算机)上安装的浏览器进行加速为例,如图14所示,在用户启动PC的操作系统后的一定时间(如用户开机或重新启动PC后的一定时间),浏览器常驻服务进程可获取浏览器的各使用文件的磁盘历史读写记录(各使用文件的磁盘历史加载记录的一种形式),包括:磁盘历史每次读写数据所对应的使用文件、数据大小、加载时间等;这里,可将浏览器的某一服务进程注册成系统服务,操作系统就会在开机后,自动运此进程并且一直常驻,直至关机才退出;浏览器常驻服务进程即是注册为了系统服务,由操作系统负责启动并常驻的浏览器服务进程;

浏览器常驻服务进程根据各使用文件的磁盘历史读写记录,分析确定各使用文件在浏览器下次运行时的加载可能性(具体分析实现可参照前文相应部分,此处不再赘述);

浏览器常驻服务进程基于所分析的各使用文件的加载可能性,确定出加载可能性高的目标使用文件(目标使用文件的具体确定方式,可参照前文相应部分,此处不再赘述),并使用缓存列表以各目标使用文件的文件路径为标识,记录各目标使用文件;

浏览器常驻服务进程将缓存列表载入到可读写缓存;

用户运行浏览器,则在浏览器的启动过程,启动后用户使用浏览器的过程,如果涉及到浏览器读取使用文件的情况(需加载使用文件的一种可选形式),则可根据读取的使用文件的文件路径,与缓存列表中记录的文件路径的比对(具体比对方式,可参照前文相应部分,此处不再赘述),在读取的使用文件的文件路径在缓存列表中记录时,从可读写缓存中读取相应的使用文件;

同时,浏览器涉及的向目标使用文件写数据的情况,可将数据先写入可读写缓存中,并立即反馈目标应用程序写数据完成的响应,再通过可读写缓存的系统写入进程,依条件的进行数据至磁盘的写入(将可读写缓存中写入的数据写入到磁盘的条件及方式,可参照前文相应部分,此处不再累赘)。

本发明实施例提供的应用程序加速方法可从多方面的进行应用程序的读写加速,极大的提升了应用程序加速的适用性和效果。

下面对本发明实施例提供的应用程序加速装置进行介绍,下文描述的应用程序加速装置可以认为是,终端为实现本发明实施例提供的应用程序加速方法所需设置的程序模块;下文描述的应用程序加速装置的内容,可与上文描述的应用程序加速方法的内容相互对应参照。

图15为本发明实施例提供的应用程序加速装置的结构框图,该装置可应用于终端,参照图15,该装置可以包括:

加载记录获取模块100,用于获取目标应用程序的各使用文件的磁盘历史加载记录;

加载可能性确定模块200,用于根据各使用文件的磁盘历史加载记录,确定各使用文件在目标应用程序下次运行时的加载可能性;

目标使用文件确定模块300,用于根据各使用文件的加载可能性确定目标使用文件,所述目标使用文件的加载可能性高于非目标使用文件的加载可能性;

缓存模块400,用于缓存所述目标使用文件,以在目标应用程序下次运行且加载所述目标使用文件时,从缓存中加载所述目标使用文件。

可选的,加载可能性确定模块200,用于根据各使用文件的磁盘历史加载记录,确定各使用文件在目标应用程序下次运行时的加载可能性,具体包括:

根据各使用文件的磁盘历史加载记录,确定各使用文件的使用程度以及加载加速效率;

分别根据各使用文件的使用程度以及加载加速效率,确定各使用文件在目标应用程序下次运行时的加载可能性;其中,使用文件的使用程度及加载加速效率,均与使用文件的加载可能性呈正相关关系。

可选的,加载可能性确定模块200,用于根据各使用文件的磁盘历史加载记录,确定各使用文件的使用程度,具体包括:

根据各使用文件的磁盘历史加载记录,分别确定各使用文件的加载次数及数据使用覆盖率;一使用文件的数据使用覆盖率表示,该使用文件被使用的数据占该使用文件的总数据的比例;

分别根据各使用文件的加载次数及数据使用覆盖率,确定各使用文件的使用程度;其中,使用文件的加载次数及数据使用覆盖率,均与使用文件的使用程度呈正相关关系。

可选的,加载可能性确定模块200,用于分别根据各使用文件的加载次数及数据使用覆盖率,确定各使用文件的使用程度,具体包括:

对于任一使用文件,将加载次数与加载次数权重的结合结果,加上,数据使用覆盖率与数据使用覆盖率权重的结合结果,以得到各使用文件的使用程度。

可选的,加载可能性确定模块200,用于根据各使用文件的磁盘历史加载记录,确定各使用文件的加载加速效率,具体包括:

对于任一使用文件,确定使用文件的内存占用大小与使用文件节约的磁盘加载时间的第一比值,以得到各使用文件相应的第一比值;

分别根据各使用文件相应的第一比值,确定各使用文件的加载加速效率。

可选的,加载可能性确定模块200,用于分别根据各使用文件相应的第一比值,确定各使用文件的加载加速效率,具体包括:

对于任一使用文件,将相应的第一比值与加载加速效率权重相结合,以得到各使用文件的加载加速效率。

可选的,加载可能性确定模块200,用于分别根据各使用文件的使用程度以及加载加速效率,确定各使用文件在目标应用程序下次运行时的加载可能性,具体包括:

对于任一使用文件,将使用程度与加载加速效率相加,以得到各使用文件的加载得分;

分别根据各使用文件的加载得分,确定各使用文件的加载可能性。

可选的,加载可能性确定模块200,用于分别根据各使用文件的加载得分,确定各使用文件的加载可能性,具体包括:

分别对各使用文件的加载得分进行时间衰减处理,使得最近加载时间越早的使用文件,经时间衰减处理后的加载得分越低,以得到各使用文件的加载可能性。

可选的,加载可能性确定模块200,用于分别对各使用文件的加载得分进行时间衰减处理,具体包括:

确定所获取的磁盘历史加载记录相应的监控时间;

对于任一使用文件,确定最近一次加载时间距当前的间隔时间,将监控时间减去该间隔时间,得到时间差值,将所得到的时间差值与监控时间的比值乘以相应的加载得分,以得到各使用文件的加载可能性。

可选的,目标使用文件确定模块300,用于根据各使用文件的加载可能性确定目标使用文件,具体包括:

将总文件大小趋近第一缓存空间大小且加载可能性最高的多个使用文件,确定为所述目标使用文件;其中,第一缓存空间大小为部分或全部的目标应用程序占用的缓存空间大小。

可选的,加载记录获取模块100,用于获取目标应用程序的各使用文件的磁盘历史加载记录,具体包括:

响应操作系统的启动或目标应用程序的关闭,通过常驻服务进程获取距当前设定时间段内,目标应用程序的各使用文件的磁盘历史加载记录。

可选的,缓存模块400,用于缓存所述目标使用文件,具体包括:

使用缓存列表以各目标使用文件的文件路径为标识,记录各文件路径相应的目标使用文件;

缓存所述缓存列表。

可选的,图16示出了本发明实施例提供的应用程序加速装置的另一结构框图,结合图15和图16所示,该装置还可以包括:

文件加载模块500,用于获取待加载的使用文件的第一文件路径;判断所述第一文件路径是否与缓存列表中记录的文件路径相匹配;若所述第一文件路径与缓存列表中记录的文件路径相匹配,从缓存中加载所述第一文件路径相应的目标使用文件。

可选的,文件加载模块500,用于判断所述第一文件路径是否与缓存列表中记录的文件路径相匹配,具体包括:

判断缓存列表中是否记录有字符串长度,与所述第一文件路径的字符串长度相应的至少一个候选文件路径;

若所述缓存列表中记录有字符串长度,与所述第一文件路径的字符串长度相应的至少一个候选文件路径,按照文件路径的低层级目录至高层级目录的顺序,比对第一文件路径与各候选文件路径,判断候选文件路径中是否存在与所述第一文件路径一致的文件路径。

可选的,缓存模块400,用于缓存所述缓存列表,具体包括:

在内核内存中缓存所述缓存列表,所述内核内存支持非目标应用程序跨进程访问;

相应的,文件加载模块500,用于获取待加载的使用文件的第一文件路径,具体包括:

检测目标应用程序的使用文件加载指令,或,检测非目标应用程序的使用文件加载指令,获取待加载的使用文件的第一文件路径。

可选的,所述缓存可以为可读写缓存;图17示出了本发明实施例提供的应用程序加速装置的再一结构框图,结合图15和图17所示,该装置还可以包括:

写处理模块600,用于检测目标应用程序的写数据指令;将写数据指令相应的写入数据写入可读写缓存中,并反馈写数据指令执行完成的响应;将可读写缓存中的写入数据写入到磁盘。

可选的,写处理模块600,用于将可读写缓存中的写入数据写入到磁盘,具体包括:

对可读写缓存中的写入数据进行标记;

若可读写缓存中同一目标使用文件存在,连续且数据量达到预定数据量的被标记的写入数据,将所述连续且数据量达到预定数据量的被标记的写入数据,写入磁盘。

可选的,写处理模块600,用于将可读写缓存中的写入数据写入到磁盘,还具体包括:

在距上一次向磁盘写入数据的时间间隔,达到预定时间间隔时,将可读写缓存中的被标记的写入数据,写入到磁盘。

可选的,写处理模块600,用于在距上一次向磁盘写入数据的时间间隔,达到预定时间间隔时,将可读写缓存中的被标记的写入数据,写入到磁盘,具体包括:

在距上一次向磁盘写入第一类目标使用文件的数据的时间间隔,达到预定第一时间间隔时,将可读写缓存中的第一类目标使用文件被标记的写入数据,写入到磁盘;

在距上一次向磁盘写入第二类目标使用文件的数据的时间间隔,达到预定第二时间间隔时,将可读写缓存中的第二类目标使用文件被标记的写入数据,写入到磁盘;

其中,第一类目标使用文件的重要性高于第二类目标使用文件,且预定第一时间间隔低于预定第二时间间隔。

可选的,图18示出了本发明实施例提供的应用程序加速装置的又一结构框图,结合图17和图18所示,该装置还可以包括:

数据直写磁盘模块700,用于检测可读写缓存中各目标使用文件的数据量增长比例;确定数据量增长比例达到预定比例阈值的目标使用文件,将该目标使用文件的后续写入数据写入到磁盘,以维持该目标使用文件的数据量增长比例不超过预定比例阈值;

释放模块800,用于将可读写缓存中加载频次低于预定频次的目标使用文件进行释放。

可选的,数据直写磁盘模块700和释放模块800也可择一使用。

本发明实施例提供的应用程序加速装置可从多方面的进行应用程序的读写加速,极大的提升了应用程序加速的适用性和效果。

本发明实施例还提供一种终端,该终端可通过执行相应程序,实现上述程序模块的功能;终端可选用PC、智能手机、平板电脑等用户设备实现,图19示出了终端的一种可选硬件结构,参照图19,该终端可以包括:至少一个处理芯片1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;

在本发明实施例中,处理芯片1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理芯片1、通信接口2、存储器3通过通信总线4完成相互间的通信;

处理芯片1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

其中,存储器3存储有程序,处理芯片1调用存储器3所存储的程序,以实现上述所述的应用程序加速方法的步骤。

本发明实施例还提供一种存储介质,该存储介质存储有适于处理芯片调用的程序,以实现上述所述的应用程序加速方法的步骤。

上述处理芯片调用的程序、及存储介质存储的程序,主要实现如下功能:

获取目标应用程序的各使用文件的磁盘历史加载记录;

根据各使用文件的磁盘历史加载记录,确定各使用文件在目标应用程序下次运行时的加载可能性;

根据各使用文件的加载可能性确定目标使用文件,所述目标使用文件的加载可能性高于非目标使用文件的加载可能性;

缓存所述目标使用文件,以在目标应用程序下次运行且加载所述目标使用文件时,从缓存中加载所述目标使用文件。

对于程序功能的具体细化和扩展,可参照前文描述,此处不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理芯片执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1