发明内容
本公开实施例至少提供一种应用程序的启动优化方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种应用程序的启动优化方法,包括:
获取用于在目标操作系统中部署的待优化应用程序的初始代码;其中,所述初始代码中包括至少一个异步线程任务对应的第一优先级参数,所述异步线程任务为所述待优化应用程序在启动时执行的,除主线程任务外的其他线程任务,所述第一优先级参数用于表征在分配计算资源时的优先级顺序;
确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务;
对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
一种可能的实施方式中,所述初始代码中还包括与所述主线程任务对应的第二优先级参数;其中,所述第二优先级参数的参数值对应的优先级顺序,高于所述第一优先级参数的参数值对应的优先级顺序。
一种可能的实施方式中,所述确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务,包括:
针对任一所述异步线程任务,确定在执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第一启动结果;以及,确定在未执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第二启动结果;其中,所述第一启动结果和所述第二启动结果,用于表征展示所述启动页面的快慢;
基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务。
一种可能的实施方式中,所述确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务,包括:
响应针对所述至少一个异步线程任务中目标线程任务的选择指令,确定所述至少一个异步线程任务中的目标线程任务。
一种可能的实施方式中,所述对所述目标线程任务对应的第一优先级参数进行调整,包括:
将所述目标线程对应的第一优先级参数的参数值,从第一目标参数值调整为第二目标参数值;其中,所述第二目标参数值对应的优先级顺序低于所述第一目标参数值。
一种可能的实施方式中,所述基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务,包括:
基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务,以及所述目标线程任务分别对应的目标影响信息;其中,所述目标影响信息用于表征各目标线程任务对所述待优化应用程序的影响程度;
所述对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码,包括:
基于各目标线程分别对应的目标影响信息,对各所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
一种可能的实施方式中,所述目标操作系统为iOS操作系统,所述计算资源为时间片,所述第一优先级参数为服务质量参数。
第二方面,本公开实施例还提供一种应用程序的启动优化装置,包括:
获取模块,用于获取用于在目标操作系统中部署的待优化应用程序的初始代码;其中,所述初始代码中包括至少一个异步线程任务对应的第一优先级参数,所述异步线程任务为所述待优化应用程序在启动时执行的,除主线程任务外的其他线程任务,所述第一优先级参数用于表征在分配计算资源时的优先级顺序;
确定模块,用于确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务;
调整模块,用于对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
一种可能的实施方式中,所述初始代码中还包括与所述主线程任务对应的第二优先级参数;其中,所述第二优先级参数的参数值对应的优先级顺序,高于所述第一优先级参数的参数值对应的优先级顺序。
一种可能的实施方式中,所述确定模块,在确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务时,用于:
针对任一所述异步线程任务,确定在执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第一启动结果;以及,确定在未执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第二启动结果;其中,所述第一启动结果和所述第二启动结果,用于表征展示所述启动页面的快慢;
基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务。
一种可能的实施方式中,所述确定模块,在确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务时,用于:
响应针对所述至少一个异步线程任务中目标线程任务的选择指令,确定所述至少一个异步线程任务中的目标线程任务。
一种可能的实施方式中,所述调整模块,在对所述目标线程任务对应的第一优先级参数进行调整时,用于:
将所述目标线程对应的第一优先级参数的参数值,从第一目标参数值调整为第二目标参数值;其中,所述第二目标参数值对应的优先级顺序低于所述第一目标参数值。
一种可能的实施方式中,所述确定模块,在基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务时,用于:
基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务,以及所述目标线程任务分别对应的目标影响信息;其中,所述目标影响信息用于表征各目标线程任务对所述待优化应用程序的影响程度;
所述调整模块,在对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码时,用于:
基于各目标线程分别对应的目标影响信息,对各所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
一种可能的实施方式中,所述目标操作系统为iOS操作系统,所述计算资源为时间片,所述第一优先级参数为服务质量参数。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的应用程序的启动优化方法、装置、计算机设备及存储介质,通过确定出待优化应用程序的初始代码中,与展示所述待优化应用程序的启动页面无关的目标线程任务,从而可以对所述目标线程任务对应的第一优先级参数进行调整,降低与待优化应用程序的启动页面无关的目标线程任务在待优化应用程序启动阶段对计算资源的抢占,从而可以提高主线程任务所分配的计算资源,从而提高待优化应用程序对应的启动速度,得到优化后的目标应用程序的目标代码。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,为了提高应用程序的启动速度,开发人员可以选择尽量使用终端设备中更多的硬件资源执行应用程序的启动任务,但受限于部分用户的终端设备的硬件资源有限,能够为应用程序的启动速度带来的提升幅度有限,因此如何对应用程序的启动进行优化成为了本领域内技术人员亟待解决的问题。
此外,针对硬件资源有限的终端设备,开发人员也可以在应用程序启动时,将与启动任务无关的线程任务延后执行,也即在应用程序完成启动后再执行所述线程任务,但这需要开发人员充分理解应用程序的业务逻辑,从而才能知道应用程序的相关代码中哪些代码是与启动任务无关的代码,并基于对代码的修改完成相关线程任务的延后执行,由于不同的应用程序需要分别进行分析与代码修改,使得整个方案有较高时间成本和人力成本,效率低下。
基于上述研究,本公开提供了一种应用程序的启动优化方法、装置、计算机设备及存储介质,通过确定出待优化应用程序的初始代码中,与展示所述待优化应用程序的启动页面无关的目标线程任务,从而可以对所述目标线程任务对应的第一优先级参数进行调整,降低与待优化应用程序的启动页面无关的目标线程任务在待优化应用程序启动阶段对计算资源的抢占,从而可以提高主线程任务所分配的计算资源,从而提高待优化应用程序对应的启动速度,得到优化后的目标应用程序的目标代码。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种应用程序的启动优化方法进行详细介绍,本公开实施例所提供的应用程序的启动优化方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该应用程序的启动优化方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的应用程序的启动优化方法的流程图,所述方法包括S101~S103,其中:
S101:获取用于在目标操作系统中部署的待优化应用程序的初始代码;其中,所述初始代码中包括至少一个异步线程任务对应的第一优先级参数,所述异步线程任务为所述待优化应用程序在启动时执行的,除主线程任务外的其他线程任务,所述第一优先级参数用于表征在分配计算资源时的优先级顺序。
S102:确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务。
S103:对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
以下是对上述步骤的详细介绍。
针对S101,所述目标操作系统可以为iOS操作系统;所述计算资源可以是CPU资源中的时间片,所述时间片表示分时操作系统分配给每个正在运行的进程微观(比如线程)上的一段CPU时间;所述第一优先级参数可以为服务质量参数(Quality of Service,QoS)。
具体的,主线程为用于渲染所述待优化应用程序的用户界面的线程,所述主线程任务为与所述主线程相关的线程任务;异步线程为除所述主线程外的其他线程,所述异步线程任务为多线程任务中除主线程任务外的其他线程任务,其与异步线程存在关联关系,所述主线程任务和所述异步线程任务在执行时可以异步执行。
此外,所述初始代码中还包括与所述主线程任务对应的第二优先级参数;其中,所述第二优先级参数的参数值对应的优先级顺序,高于所述第一优先级参数的参数值对应的优先级顺序。
示例性的,以所述目标操作系统为iOS操作系统,所述第一优先级参数和第二优先级参数为服务质量参数为例,所述服务质量参数的参数值可以包括User-interactive、User-initiated、Utility、Background,各参数值分别对应的优先级顺序依次降低,不同优先级顺序对应的计算资源分配占比可以不同,各参数值对应的计算资源占比可以依次为40%、30%、20%、10%;所述第二优先级参数的参数值可以为最高优先级顺序的User-interactive,所述第一优先级参数的参数值可以为低于最高优先级顺序User-interactive一个级别的User-initiated。
S102:确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务。
这里,所述待优化应用程序的启动页面可以是所述待优化应用程序的主页面,当所述待优化应用程序在被触发操作启动后,直至展示所述主页面时,即可确定所述待优化应用程序启动完成。
具体的,在确定与展示所述待优化应用程序的启动页面无关的目标线程任务时,可以通过以下方式中的任一种:
方式1、响应针对目标线程任务的选择指令,确定所述目标线程任务
这里,可以响应针对所述至少一个异步线程任务中目标线程任务的选择指令,确定所述至少一个异步线程任务中的目标线程任务。
示例性的,以所述异步线程任务为异步线程任务1、异步线程任务2、异步线程任务3、异步线程任务4、异步线程任务5为例,可以响应针对异步线程任务1的选择指令,将所述异步线程任务1确定为所述目标线程任务。
方式2、基于各所述异步线程任务分别对应启动结果,确定所述目标线程任务
这里,在基于各所述异步线程任务分别对应启动结果,确定所述目标线程任务时,可以采用下述步骤A1~A2:
A1:针对任一所述异步线程任务,确定在执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第一启动结果;以及,确定在未执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第二启动结果;其中,所述第一启动结果和所述第二启动结果,用于表征展示所述启动页面的快慢。
A2:基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务。
这里,由于需要确定各异步线程任务是否对所述待优化应用程序的启动页面有关,因此可以通过控制变量的方式分别确定出,执行各异步线程任务是否对所述待优化应用程序的启动页面的快慢存在影响。
具体的,在基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务时,可以采用下述步骤A21~A22:
A21:针对任一所述异步线程任务,基于该异步线程任务对应的第一启动结果和第二启动结果,确定该异步线程任务对应的启动影响结果。
A22:基于各异步线程任务分别对应的启动影响结果和预设阈值,确定所述至少一个异步线程任务中的目标线程任务。
这里,搜索预设阈值可以是预设的时间阈值,比如100ms等。
具体的,在基于所述第一启动结果和第二启动结果确定启动影响结果时,可以将所述第一启动结果和所述第二启动结果之间的差值作为所述启动影响结果的数值。
针对任一所述异步线程任务,若该异步线程任务对应的启动影响结果大于所述预设阈值,则可以将该异步线程任务确定为目标线程任务。
示例性的,针对异步线程任务1,在执行异步线程任务1的情况下,启动所述待优化应用程序时对应的第一启动结果为800ms,在未执行异步线程任务1的情况下,启动所述待优化应用程序时对应的第二启动结果为500ms,则可以确定所述异步线程任务1对应的启动影响结果为300ms,300ms大于预设阈值100ms,则可以确定所述异步线程任务1为目标线程任务。
此外,由于异步线程任务可能是所述待优化应用成在启动时必须要执行的线程任务,因此在未执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第二启动结果可能为启动失败,此时可以将对应的异步线程任务确定为必须要执行的线程任务,也即不对该异步线程任务进行优化。
此外,在确定各异步线程任务分别对应的启动影响结果之前,还可以基于预设的筛选条件对所述异步线程任务进行筛选,从而可以减少后续的计算量,所述筛选条件例如可以是异步线程任务是否调用/复用了与页面展示相关的预设代码字段,若否,则可以将对应的异步线程任务未通过筛选,可以不用参与后续的启动影响结果计算。
S103:对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
这里,在对所述目标线程任务对应的第一优先级参数进行调整时,可以调整与所述目标线程任务对应的第一优先级参数;和/或,可以调整所述目标线程任务所对应的线程/任务队列的第一优先级参数,调整所述目标线程任务所对应的线程/任务队列的第一优先级参数的效果,与直接调整所述目标线程任务对应的第一优先级参数的效果相同,均可以在执行所述目标线程任务时,按照调整后的优先级参数的参数值进行计算资源分配。
具体的,在确定与展示所述待优化应用程序的启动页面无关的目标线程任务时,可以通过以下方式中的任一种:
方式1、按照预设降低幅度,降低所述第一优先级参数对应的第一参数值的优先级顺序
这样,可以根据预设降低幅度将所述目标线程任务对应的第一优先级参数的参数值,从第一目标参数值调整为第二目标参数值;其中,所述第二目标参数值对应的优先级顺序低于所述第一目标参数值。
示例性的,仍以所述目标操作系统为iOS操作系统,所述第一优先级参数和第二优先级参数为服务质量参数为例,可以根据预设降低幅度将所述目标线程任务对应的第一优先级参数的参数值,从User-initiated调整为Utility;或者,可以将所述目标线程任务对应的第一优先级参数的参数值,从User-initiated调整为Background。
方式2、基于各目标线程分别对应的目标影响信息,对各所述目标线程任务分别对应的第一优先级参数进行调整
具体的,在基于各目标线程分别对应的目标影响信息,对各所述目标线程任务分别对应的第一优先级参数进行调整时,可以采用下述步骤B1~B2:
B1:基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务,以及所述目标线程任务分别对应的目标影响信息;其中,所述目标影响信息用于表征各目标线程任务对所述待优化应用程序的影响程度。
这里,在确定所述目标影响信息时,可以根据所述启动影响结果和预设的影响阈值进行确定。
B2:基于各目标线程分别对应的目标影响信息,对各所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
示例性的,以所述影响阈值为200ms为例,若异步线程任务1对应的启动影响结果为300ms,300ms大于预设阈值100ms,则可以确定所述异步线程任务1为需要进行优化的目标线程任务,再通过判断300ms大于200ms,则可以确定所述异步线程任务1对所述待优化应用程序的影响程度较大,需要调整的幅度也较大,可以将所述异步线程任务1对应的第一优先级参数的参数值,从User-initiated调整为Background(也即向下调整两个级别);若异步线程任务2对应的启动影响结果为150ms,150ms大于预设阈值100ms,则可以确定所述异步线程任务2为需要进行优化的目标线程任务,再通过判断150ms小于200ms,则可以确定所述异步线程任务2对所述待优化应用程序的影响程度较小,需要调整的幅度也较小,可以将所述异步线程任务2对应的第一优先级参数的参数值,从User-initiated调整为Utility(也即向下调整一个级别)。
本公开实施例提供的应用程序的启动优化方法,通过确定出待优化应用程序的初始代码中,与展示所述待优化应用程序的启动页面无关的目标线程任务,从而可以对所述目标线程任务对应的第一优先级参数进行调整,降低与待优化应用程序的启动页面无关的目标线程任务在待优化应用程序启动阶段对计算资源的抢占,从而可以提高主线程任务所分配的计算资源,从而提高待优化应用程序对应的启动速度,得到优化后的目标应用程序的目标代码。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与应用程序的启动优化方法对应的应用程序的启动优化装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述应用程序的启动优化方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图2所示,为本公开实施例提供的一种应用程序的启动优化装置的架构示意图,所述装置包括:获取模块201、确定模块202、调整模块203;其中,
获取模块201,用于获取用于在目标操作系统中部署的待优化应用程序的初始代码;其中,所述初始代码中包括至少一个异步线程任务对应的第一优先级参数,所述异步线程任务为所述待优化应用程序在启动时执行的,除主线程任务外的其他线程任务,所述第一优先级参数用于表征在分配计算资源时的优先级顺序;
确定模块202,用于确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务;
调整模块203,用于对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
一种可能的实施方式中,所述初始代码中还包括与所述主线程任务对应的第二优先级参数;其中,所述第二优先级参数的参数值对应的优先级顺序,高于所述第一优先级参数的参数值对应的优先级顺序。
一种可能的实施方式中,所述确定模块202,在确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务时,用于:
针对任一所述异步线程任务,确定在执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第一启动结果;以及,确定在未执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第二启动结果;其中,所述第一启动结果和所述第二启动结果,用于表征展示所述启动页面的快慢;
基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务。
一种可能的实施方式中,所述确定模块202,在确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务时,用于:
响应针对所述至少一个异步线程任务中目标线程任务的选择指令,确定所述至少一个异步线程任务中的目标线程任务。
一种可能的实施方式中,所述调整模块203,在对所述目标线程任务对应的第一优先级参数进行调整时,用于:
将所述目标线程对应的第一优先级参数的参数值,从第一目标参数值调整为第二目标参数值;其中,所述第二目标参数值对应的优先级顺序低于所述第一目标参数值。
一种可能的实施方式中,所述确定模块202,在基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务时,用于:
基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务,以及所述目标线程任务分别对应的目标影响信息;其中,所述目标影响信息用于表征各目标线程任务对所述待优化应用程序的影响程度;
所述调整模块203,在对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码时,用于:
基于各目标线程分别对应的目标影响信息,对各所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
一种可能的实施方式中,所述目标操作系统为iOS操作系统,所述计算资源为时间片,所述第一优先级参数为服务质量参数。
本公开实施例提供的应用程序的启动优化装置,通过确定出待优化应用程序的初始代码中,与展示所述待优化应用程序的启动页面无关的目标线程任务,从而可以对所述目标线程任务对应的第一优先级参数进行调整,降低与待优化应用程序的启动页面无关的目标线程任务在待优化应用程序启动阶段对计算资源的抢占,从而可以提高主线程任务所分配的计算资源,从而提高待优化应用程序对应的启动速度,得到优化后的目标应用程序的目标代码。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图3所示,为本公开实施例提供的计算机设备300的结构示意图,包括处理器301、存储器302、和总线303。其中,存储器302用于存储执行指令,包括内存3021和外部存储器3022;这里的内存3021也称内存储器,用于暂时存放处理器301中的运算数据,以及与硬盘等外部存储器3022交换的数据,处理器301通过内存3021与外部存储器3022进行数据交换,当计算机设备300运行时,处理器301与存储器302之间通过总线303通信,使得处理器301在执行以下指令:
获取用于在目标操作系统中部署的待优化应用程序的初始代码;其中,所述初始代码中包括至少一个异步线程任务对应的第一优先级参数,所述异步线程任务为所述待优化应用程序在启动时执行的,除主线程任务外的其他线程任务,所述第一优先级参数用于表征在分配计算资源时的优先级顺序;
确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务;
对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
一种可能的实施方式中,所述处理器301的指令中,所述初始代码中还包括与所述主线程任务对应的第二优先级参数;其中,所述第二优先级参数的参数值对应的优先级顺序,高于所述第一优先级参数的参数值对应的优先级顺序。
一种可能的实施方式中,所述处理器301的指令中,所述确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务,包括:
针对任一所述异步线程任务,确定在执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第一启动结果;以及,确定在未执行该异步线程任务的情况下,启动所述待优化应用程序时对应的第二启动结果;其中,所述第一启动结果和所述第二启动结果,用于表征展示所述启动页面的快慢;
基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务。
一种可能的实施方式中,所述处理器301的指令中,所述确定所述至少一个异步线程任务中,与展示所述待优化应用程序的启动页面无关的目标线程任务,包括:
响应针对所述至少一个异步线程任务中目标线程任务的选择指令,确定所述至少一个异步线程任务中的目标线程任务。
一种可能的实施方式中,所述处理器301的指令中,所述对所述目标线程任务对应的第一优先级参数进行调整,包括:
将所述目标线程对应的第一优先级参数的参数值,从第一目标参数值调整为第二目标参数值;其中,所述第二目标参数值对应的优先级顺序低于所述第一目标参数值。
一种可能的实施方式中,所述处理器301的指令中,所述基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务,包括:
基于各所述异步线程任务分别对应的第一启动结果和第二启动结果,确定所述至少一个异步线程任务中的目标线程任务,以及所述目标线程任务分别对应的目标影响信息;其中,所述目标影响信息用于表征各目标线程任务对所述待优化应用程序的影响程度;
所述对所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码,包括:
基于各目标线程分别对应的目标影响信息,对各所述目标线程任务对应的第一优先级参数进行调整,得到优化后的目标应用程序的目标代码。
一种可能的实施方式中,所述处理器301的指令中,所述目标操作系统为iOS操作系统,所述计算资源为时间片,所述第一优先级参数为服务质量参数。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的应用程序的启动优化方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的应用程序的启动优化方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。