CN112181517A - 一种应用软件的启动方法、装置、设备和介质 - Google Patents

一种应用软件的启动方法、装置、设备和介质 Download PDF

Info

Publication number
CN112181517A
CN112181517A CN202011019593.8A CN202011019593A CN112181517A CN 112181517 A CN112181517 A CN 112181517A CN 202011019593 A CN202011019593 A CN 202011019593A CN 112181517 A CN112181517 A CN 112181517A
Authority
CN
China
Prior art keywords
task
starting
core
promoter
scheduler
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.)
Pending
Application number
CN202011019593.8A
Other languages
English (en)
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202011019593.8A priority Critical patent/CN112181517A/zh
Publication of CN112181517A publication Critical patent/CN112181517A/zh
Pending legal-status Critical Current

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/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Abstract

本公开关于一种应用软件的启动方法、装置、设备和介质,所述方法包括:响应于应用软件的启动指令,将启动指令对应启动任务划分为核心启动任务和非核心启动任务。获取所述核心启动任务中核心启动子任务对应的第一启动顺序和核心启动子任务对应的第一任务调度器。利用所述第一任务调度器按照所述第一启动顺序,执行所述核心启动子任务。获取所述非核心启动任务中的非核心启动子任务对应的第二启动顺序和非核心启动子任务对应的第二任务调度器。利用第二任务调度器按照第二启动顺序,执行非核心启动子任务。所述方法提高了启动资源分配的合理性,从而加快启动子任务的处理效率,降低启动耗时。

Description

一种应用软件的启动方法、装置、设备和介质
技术领域
本公开涉及计算机应用领域,尤其涉及一种应用软件的启动方法。
背景技术
点击应用软件的界面图标,进入应用软件首页可以认为是一次应用软件启动周期。应用软件的启动包括了框架启动、首页启动、首页数据加载和首页界面渲染。在应用软件的框架启动过程包括了大量启动子任务,在现有技术中,这些启动子任务都是在同一线程串行进行,且在全部的框架启动的启动子任务全部执行完成后,才会开始执行首页启动,耗费了较多的启动时间,造成应用软件的界面卡顿等问题,影响了用户体验。
发明内容
本公开提供一种应用软件的启动方法、装置、设备和介质,以至少解决相关技术中启动耗时较长的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种应用软件的启动方法,所述方法包括:
响应于应用软件的启动指令,将所述启动指令对应启动任务划分为核心启动任务和非核心启动任务;
获取所述核心启动任务中核心启动子任务对应的任务调度器类型信息和对应的第一启动顺序;
根据所述核心启动子任务对应的任务调度器类型信息,确定所述核心启动子任务对应的第一任务调度器;
利用所述第一任务调度器按照所述第一启动顺序,执行所述核心启动子任务;
获取所述非核心启动任务中的非核心启动子任务对应的任务调度器类型信息和对应的第二启动顺序;
根据所述非核心启动子任务对应的任务调度器类型信息,确定所述非核心启动子任务对应的第二任务调度器;
利用所述第二任务调度器按照所述第二启动顺序,执行所述非核心启动子任务。
作为一种可选的实施例,所述响应于应用软件的启动指令,确定所述启动指令对应启动任务中的核心启动任务和非核心启动任务之前,还包括:
根据预设的框架启动优先级信息,确定所述核心启动子任务的有向无环图;
基于所述核心启动子任务的有向无环图,确定所述核心启动子任务的拓扑排序;
将所述核心启动子任务的拓扑排序作为所述第一启动顺序。
作为一种可选的实施例,所述响应于应用软件的启动指令,确定所述启动指令对应启动任务中的核心启动任务和非核心启动任务之前,还包括:
根据预设的首页启动优先级信息,确定所述非核心启动子任务的有向无环图;
基于所述非核心启动子任务的有向无环图,确定所述非核心启动子任务的拓扑排序;
将所述非核心启动子任务的拓扑排序作为所述第二启动顺序。
作为一种可选的实施例,所述方法还包括:
向服务器发送历史启动任务中的历史启动子任务的历史处理器执行时间、历史进程执行时间和任务标签信息;以使得所述服务器根据所述任务标签信息,对所述历史启动任务中的历史启动子任务进行分组,得到启动子任务分组;以及确定所述启动子任务分组内的历史启动子任务的历史处理器执行时间的第一中位值时间,并确定所述启动子任务分组内各个启动子任务的历史进程执行时间的第二中位值时间;以及根据所述第一中位值时间和所述第二中位值时间的对比结果,确定所述启动子任务分组与任务调度器类型信息间的对应关系。
作为一种可选的实施例,所述方法还包括:
向服务器发送启动资源分配请求到所述服务器,所述启动资源分配请求包括目标启动任务中目标启动子任务的任务标签信息;以使得所述服务器根据所述目标启动子任务的任务标签信息,确定每个目标启动子任务对应的启动子任务分组;以及根据所述启动子任务分组与任务调度器类型信息间的对应关系,确定所述目标启动子任务和任务调度器类型信息之间的对应关系;
接收所述服务器发送的所述目标启动子任务和任务调度器类型信息之间的对应关系。
作为一种可选的实施例,其特征在于,所述获取所述核心启动任务中核心启动子任务对应的任务调度器类型信息包括:
根据所述核心启动子任务的任务标签信息,确定与所述核心启动子任务匹配的目标启动子任务;
根据所述目标启动子任务和任务调度器类型信息之间的对应关系,确定所述核心启动任务中核心启动子任务对应的任务调度器类型信息。
作为一种可选的实施例,所述获取所述非核心启动任务中的非核心启动子任务对应的任务调度器类型信息包括:
根据所述非核心启动子任务的任务标签信息,确定与所述非核心启动子任务匹配的目标启动子任务;
根据所述目标启动子任务和任务调度器类型信息之间的对应关系,确定所述非核心启动任务中非核心启动子任务对应的任务调度器类型信息。
根据本公开实施例的第二方面,提供一种应用软件的启动装置,所述装置包括:
启动指令响应模块,被配置为执行响应于应用软件的启动指令,将所述启动指令对应启动任务划分为核心启动任务和非核心启动任务;
第一信息获取模块,被配置为执行获取所述核心启动任务中核心启动子任务对应的任务调度器类型信息和对应的第一启动顺序;
第一任务调度器确定模块,被配置为执行根据所述核心启动子任务对应的任务调度器类型信息,确定所述核心启动子任务对应的第一任务调度器;
第一启动执行模块,被配置为执行所述客户端利用所述第一任务调度器按照所述第一启动顺序,执行所述核心启动子任务;
第二信息获取模块,被配置为执行所述客户端获取所述非核心启动任务中的非核心启动子任务对应的任务调度器类型信息和对应的第二启动顺序;
第二任务调度器确定模块,被配置为执行所述客户端根据所述非核心启动子任务对应的任务调度器类型信息,确定所述非核心启动子任务对应的第二任务调度器;
第二启动执行模块,被配置为执行利用所述客户端所述第二任务调度器按照所述第二启动顺序,执行所述非核心启动子任务。
作为一种可选的实施例,所述装置还包括:
第一图计算单元,被配置为执行根据预设的框架启动优先级信息,确定核心启动子任务的有向无环图;
第一拓扑排序单元,被配置为执行基于核心启动子任务的有向无环图,确定核心启动子任务的拓扑排序,并将核心启动子任务的拓扑排序作为第一启动顺序。
作为一种可选的实施例,所述装置还包括:
第二图计算单元,被配置为执行客户端根据预设的首页启动优先级信息,确定非核心启动子任务的有向无环图;
第二拓扑排序单元,被配置为执行客户端基于非核心启动子任务的有向无环图,确定非核心启动子任务的拓扑排序,并将非核心启动子任务的拓扑排序作为第二启动顺序。
作为一种可选的实施例,所述装置还包括:运行状态数据发送模块;被配置为执行向服务器发送历史启动任务中的历史启动子任务的历史处理器执行时间、历史进程执行时间和任务标签信息;以使得所述服务器根据所述任务标签信息,对所述历史启动任务中的历史启动子任务进行分组,得到启动子任务分组;以及确定所述启动子任务分组内的历史启动子任务的历史处理器执行时间的第一中位值时间,并确定所述启动子任务分组内各个启动子任务的历史进程执行时间的第二中位值时间;以及根据所述第一中位值时间和所述第二中位值时间的对比结果,确定所述启动子任务分组与任务调度器类型信息间的对应关系。
作为一种可选的实施例,所述装置还包括:
资源分配请求发送模块,被配置为执行向服务器发送启动资源分配请求到所述服务器,所述启动资源分配请求包括目标启动任务中目标启动子任务的任务标签信息;以使得所述服务器根据所述目标启动子任务的任务标签信息,确定每个目标启动子任务对应的启动子任务分组;以及根据所述启动子任务分组与任务调度器类型信息间的对应关系,确定所述目标启动子任务和任务调度器类型信息之间的对应关系;
对应关系接收模块,被配置为执行接收所述服务器发送的所述目标启动子任务和任务调度器类型信息之间的对应关系。
作为一种可选的实施例,所述装置还包括:
核心启动子任务匹配单元,被配置为执行根据所述核心启动子任务的任务标签信息,确定与所述核心启动子任务匹配的目标启动子任务;
第一任务调度器类型确定单元,被配置为执行根据所述目标启动子任务和任务调度器类型信息之间的对应关系,确定所述核心启动任务中核心启动子任务对应的任务调度器类型信息。
作为一种可选的实施例,所述装置还包括:
非核心启动子任务匹配单元,被配置为执行根据所述非核心启动子任务的任务标签信息,确定与所述非核心启动子任务匹配的目标启动子任务;
第二任务调度器类型确定单元,被配置为执行根据所述目标启动子任务和任务调度器类型信息之间的对应关系,确定所述非核心启动任务中非核心启动子任务对应的任务调度器类型信息。
根据本公开实施例的第三方面,提供一种应用软件的启动设备,所述应用软件的启动设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述的一种应用软件的启动方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由一种应用软件的启动设备的处理器执行时,使得所述应用软件的启动设备能够执行如上述的一种应用软件的启动方法。
根据本公开实施例的第四方面,提供一种计算机程序产品,所述计算机程序产品存储在存储介质中,使得计算机设备的处理器能够从存储介质中读取该计算机程序产品,并执行如上述的一种应用软件的启动方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
客户端响应启动指令,将启动任务划分为核心启动任务和非核心启动任务,并获取核心启动任务对应的第一启动顺序和各个核心启动子任务对应的任务调度器,利用任务调度器按照第一启动顺序执行框架启动。客户端获取非核心启动任务对应的第二启动顺序和各个非核心启动子任务对应的任务调度器,利用任务调度器按照第二启动顺序执行非核心启动子任务。客户端在启动时并行执行非核心启动子任务和首页启动,同时根据任务调度器类型信息选择对应的任务调度器,提高启动资源分配的合理性,从而加快启动子任务的处理效率,降低启动耗时。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种应用软件的启动方法的应用场景的示意图。
图2是根据一示例性实施例示出的一种应用软件的启动方法的流程图。
图3是根据一示例性实施例示出的一种应用软件的启动方法中确定启动顺序的流程图。
图4是根据一示例性实施例示出的一种应用软件的启动方法中服务器确定启动子任务分组和任务调度器类型信息间的对应关系的流程图。
图5是根据一示例性实施例示出的一种应用软件的启动方法中确定启动子任务分组的流程图。
图6是根据一示例性实施例示出的一种应用软件的启动方法中进行数据分析的流程图。
图7是根据一示例性实施例示出的一种应用软件的启动方法中启动资源分配的流程图。
图8是根据一示例性实施例示出的一种应用软件的启动方法中确定任务调度器类型信息的流程图。
图9是根据一示例性实施例示出的一种应用软件的启动方法中服务器侧执行的方法的流程图。
图10是根据一示例性实施例示出的一种应用软件的启动方法中客户端侧执行的方法的流程图。
图11是根据一示例性实施例示出的应用软件X启动中客户端和服务器的交互示意图。
图12是根据一示例性实施例示出的一种应用软件的启动装置的框图。
图13是根据一示例性实施例示出的应用软件的启动设备为终端时终端的框图。
图14是根据一示例性实施例示出的应用软件的启动设备为服务器时服务器的框图.
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种应用软件的启动方法的应用场景示意图,应用场景包括:客户端110和服务器120。客户端110向服务器120发送历史启动任务中的历史启动子任务的历史处理器执行时间、历史进程执行时间和任务标签信息,服务器120对历史处理器执行时间、历史进程执行时间和任务标签信息进行数据分析,得到启动子任务分组对应的任务调度器类型信息,客户端110向服务器120发送启动资源分配请求,启动资源分配请求包括目标启动任务的任务标签信息,服务器120根据目标启动任务的任务标签信息,确定目标启动任务中的目标启动子任务和任务调度器类型信息之间的对应关系,将对应关系反馈到客户端110。客户端110在启动时,根据预先确定的启动顺序和对应关系,分别执行核心启动子任务和非核心启动子任务,完成启动流程。
在本说明书的实施例中,客户端110可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如测试程序等。客户端110包括UI(User Interface,用户界面)层,客户端110通过UI层获取启动指令,另外,基于API(Application Programming Interface,应用程序接口)将数据分析所需的数据发送给服务器120。
在本说明书的实施例中,服务器120可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。服务器120可以包括有网络通信单元、处理器和存储器等等。具体的,服务器120可以基于大数据分析客户端110发送的历史处理器执行时间、历史进程执行时间和任务标签信息,得到客户端110的启动任务中的启动子任务和任务调度器类型信息间的对应关系,将该对应关系发送到客户端110。
在本说明书的实施例中,服务器120基于大数据分析的方法对客户端110发送的数据进行发内心,整个大数据的处理流程可以定义为,在合适工具的辅助下,对广泛异构的数据源进行抽取和集成,从中提取出数据的实体和关系,经过关联和聚合之后采用统一定义的结构来存储这些数据。然后利用合适的数据分析技术,例如数据挖掘算法,对存储的数据进行分析,从中提取有益的知识,并利用恰当的方式将结果发送到客户端110。在本说明书的实施例中,客户端110向服务器发送启动资源分配请求,服务器120将通过大数据分析结果得到的对应关系发送到客户端110。
图2是根据一示例性实施例示出的一种应用软件的启动方法的流程图,如图2所示,该应用软件的启动方法用于客户端中,包括以下步骤。
S210.客户端响应于应用软件的启动指令,将启动指令对应的启动任务划分为核心启动任务和非核心启动任务;
具体地,客户端将启动任务划分为核心启动任务和非核心启动任务,其中,核心启动任务为需要在框架启动阶段完成的任务,非核心启动任务为不需要在框架启动阶段完成的任务。在一个具体的实施例中,核心任务包括进行初始化的任务,例如初始化数据上报等,非核心任务包括图像加载、网络连接请求等任务。在框架启动阶段,客户端执行核心任务,在核心任务执行完成后,才会进行应用软件的首页启动,非核心任务可以和应用软件的首页启动、首页数据加载以及首页界面渲染并行执行,因此客户端可以在此时执行非核心任务。
通过将启动任务中不需要在框架启动阶段执行的非核心启动任务区分出来,将非核心启动任务与首页启动并行,从而减少启动耗时。
S220.客户端获取核心启动任务中核心启动子任务对应的任务调度器类型信息和对应的第一启动顺序;
S230.客户端根据核心启动子任务对应的任务调度器类型信息,确定核心启动子任务对应的第一任务调度器;
S240.客户端利用第一任务调度器按照第一启动顺序,执行核心启动子任务;
S250.客户端获取非核心启动任务中的非核心启动子任务对应的任务调度器类型信息和对应的第二启动顺序;
S260.客户端根据非核心启动子任务对应的任务调度器类型信息,确定非核心启动子任务对应的第二任务调度器;
S270.客户端利用第二任务调度器按照第二启动顺序,执行非核心启动子任务。
具体地,客户端在将启动任务分为核心启动子任务和非核心启动子任务之后,获取核心启动子任务对应的第一启动顺序和对应的任务调度器类型信息。核心启动子任务对应的第一启动顺序是通过客户端对核心启动子任务进行数据处理得到的,核心启动子任务对应的任务调度器类型信息是通过服务器进行大数据分析得到的。按照第一启动顺序,依次通过当前待执行的核心启动子任务对应的任务调度器类型信息,确定该核心启动子任务对应的第一任务调度器,再利用第一任务调度器,执行该核心启动子任务,直到客户端完成框架启动。
客户端完成框架启动之后,获取非核心启动子任务对应的第二启动顺序和对应的任务调度器类型信息。非核心启动子任务对应的第二启动顺序是通过客户端对非核心启动子任务进行数据处理得到的,非核心启动子任务对应的任务调度器类型信息是通过服务器进行大数据分析得到的。按照第二启动顺序,依次通过当前待执行的非核心启动子任务对应的任务调度器类型信息,确定该非核心启动子任务对应的第一任务调度器,再利用第一任务调度器,执行该非核心启动子任务,同时客户端还可以并行启动应用软件首页,加载应用软件的首页数据并对应用软件的首页界面进行渲染。
每一次应用软件的启动完成后,客户端向服务器发送核心启动子任务和非核心启动子任务的运行状态数据,服务器因此可以获取不同客户端中至少一次启动任务的运行状态数据。服务器定时对这些运行状态数据进行数据分析,得到客户端中核心启动子任务与任务调度器类型信息的对应关系,以及非核心启动子任务与任务调度器类型的对应关系,并可以根据客户端最新发送的运行状态数据,实时地对该对应关系进行更新。服务器在接收客户端的请求后,可以将最新的对应关系发送给客户端,客户端在下一次启动时就可以根据该对应关系确定相应的任务调度器。
通过将非核心启动任务与首页启动并行,且根据服务器发送的对应关系选择适应于当前启动子任务的任务调度器,提高启动资源分配的合理性,从而减少启动耗时。且客户端会发送最新一次的运行状态数据到服务器,服务器则根据最新一次的运行状态数据对对应关系进行更新,可以动态地调整启动资源的分配,提高启动资源分配的合理性。
进一步地,请参见图3,客户端响应于应用软件的启动指令,确定启动指令对应启动任务中的核心启动任务和非核心启动任务之前,还包括:
S310.客户端根据预设的框架启动优先级信息,确定核心启动子任务的有向无环图;
S320.客户端基于核心启动子任务的有向无环图,确定核心启动子任务的拓扑排序;
S330.客户端将核心启动子任务的拓扑排序作为第一启动顺序;
S340.客户端根据预设的首页启动优先级信息,确定非核心启动子任务的有向无环图;
S350.客户端基于非核心启动子任务的有向无环图,确定非核心启动子任务的拓扑排序;
S360.客户端将非核心启动子任务的拓扑排序作为第二启动顺序。
具体地,客户端对各个核心启动子任务的优先级进行标记,得到核心启动子任务对应的框架启动优先级信息。客户端根据核心启动子任务对应的框架启动优先级信息,确定核心启动子任务的初始执行顺序,并生成核心启动子任务的有向无环图。通过入度表算法、深度优先搜索算法或者广度优先搜索算法,对核心启动子任务的有向无环图进行拓扑排序。
客户端对各个非核心启动子任务的优先级进行标记,得到非核心启动子任务对应的首页启动优先级信息。客户端根据非核心启动子任务对应的手套启动优先级信息,确定非核心启动子任务的初始执行顺序,并生成非核心启动子任务的有向无环图。通过入度表算法、深度优先算法或者广度优先算法,对非核心启动子任务的有向无环图进行拓扑排序。
在一个具体的实施例中,通过入度表算法进行拓扑排序时,查找核心启动子任务的有向无环图或者非核心启动子任务的有向无环图中入度为0的节点,输出该入度为0的节点,并从有向无环图中删除该入度为0的节点和所有以该节点为起点的有向边,重复上述步骤直到有向无环图为空后即可得到核心启动子任务的拓扑排序或者非核心启动子任务的拓扑排序。基于入度表算法,根据深度优先算法或广度优先算法遍历核心启动子任务的有向无环图或者非核心启动子任务的有向无环图中每一个入度为0的节点并对遍历过的入度为0的节点更新该点的子节点的入度,直到遍历完所有节点,即可得到核心启动子任务的拓扑排序或者非核心启动子任务的拓扑排序。
对启动子任务进行优先级排序,提高资源利用率,提高客户端执行启动子任务的效率,从而减少启动耗时。
进一步地,请参见图4,该启动方法还包括:
S410.客户端发送历史启动任务中的历史启动子任务的历史处理器执行时间、历史进程执行时间和任务标签信息;
S420.服务器根据任务标签信息,对历史启动任务中的历史启动子任务进行分组,得到启动子任务分组;
S430.服务器对启动子任务分组内的历史启动子任务的历史处理器执行时间和历史进程执行时间进行数据分析,确定启动子任务分组对应的任务调度器类型信息。
具体地,在每一次的启动完成后,客户端向服务器发送本次启动的核心启动子任务和非核心启动子任务的运行状态数据,本次启动的核心启动子任务和非核心启动子任务即为历史启动子任务,运行状态数据则包括历史处理器执行时间、历史进程执行时间和任务标签信息。历史处理器执行时间为该历史启动子任务消耗中央处理器(centralprocessing unit,CPU)的时间,历史进程执行时间为该历史启动子任务实际执行消耗的时间,在执行历史启动子任务时CPU可以不参与工作。
服务器根据任务标签信息,对历史启动子任务进行分组,得到启动子任务分组。服务器对启动子任务分组内的历史启动子任务的历史处理器执行时间和历史进程执行时间进行数据分析,确定各个启动子任务分组对应的任务调度器类型信息。在一个具体的实施例中,服务器可以根据聚类算法和任务标签信息,对历史启动子任务进行分组。聚类算法可以是基于划分、层次、密度、网络、模型等的聚类算法。
在一个具体的实施例中,服务器可以定时对一定数目的历史处理器执行时间和历史进程执行时间进行数据处理,例如每天凌晨1点进行数据处理。
服务器基于大数据分析确定启动子任务的资源调度方案,使得启动子任务在执行时可以选择更合适的任务调度器,因此加快了启动子任务的处理效率,减少了启动耗时。
进一步地,请参见图5,任务标签信息包括设备类型信息和任务名称信息,服务器根据任务标签信息,对历史启动任务中的历史启动子任务进行分组,得到启动子任务分组包括:
S510.服务器根据设备类型信息,对每个历史启动子任务进行分组,得到同一设备类型的历史启动子任务;
S520.服务器根据任务名称信息,对同一设备类型的历史启动子任务进行分组,得到同一设备类型的历史启动子任务中同一任务名称的历史启动子任务;
S530.服务器将同一任务名称的历史启动子任务作为启动子任务分组。
具体地,任务标签信息包括设备类型信息和任务名称信息,任务标签信息还可以是任何可以对历史启动子任务进行分组的信息,例如应用软件的名称信息、应用软件的类型信息、任务类型信息等。服务器根据不同的设备类型信息,对历史启动子任务进行第一次分组,得到不同的设备类型信息对应的历史启动子任务。服务器根据任务名称信息,对同一设备类型信息对应的历史启动子任务信息进行第二次分组,得到同一设备类型信息下的历史启动子任务信息中同一任务名称的历史启动子任务,将同一任务名称的历史启动子任务作为启动子任务分组。
在一个具体的实施例中,客户端A1发送设备类型信息A和任务名称信息a任务、b任务以及c任务到服务器中,客户端A2发送设备类型信息A和任务名称信息a任务、b任务以及c任务到服务器中,客户端B发送设备类型信息B和任务名称信息a任务、b任务以及d任务到服务器中,服务器在进行分组时,先根据设备类型信息,将历史启动子任务分别对应设备类型A和设备类型B分为两组,然后在设备类型A组中,根据历史启动子任务的具体名称分为a、b和c三组,在设备类型B组中,根据历史启动子任务的具体名称分为a、b和d三组,由此得到的历史启动子任务的分组为六组。
当获得的历史启动子任务较多时,可以基于聚类算法和任务标签信息,对历史启动子任务进行分组。在一个具体的实施例中,当聚类算法为基于划分的方法时,例如通过K-means算法进行聚类时,随机选择历史启动子任务中的一部分历史启动子任务,将这些历史启动子任务作为初始簇的中心。对剩余的每个历史启动子任务,根据任务标签信息计算其与各个初始簇的中心的距离,将这一点归并到最近的初始簇中。重新计算每个初始簇的平均值,将平均值更新为新的簇中心,重复上述过程直到准则函数收敛,无法再进行下一步聚类为止。在一个具体的实施例中,当聚类算法为基于层次的方法时,例如通过KNN算法进行聚类时,将每个历史启动子任务作为一个初始簇,计算两两历史启动子任务间的最小距离。将距离最小的两个初始簇合并为一个新簇,重新计算新簇与其他的初始簇之间的距离,重复上述步骤直到不能再对簇进行合并为止。
对各个历史启动子任务进行分组,可以降低数据的维度,简化数据处理。
进一步地,请参见图6,服务器对启动子任务分组内的启动子任务的历史处理器执行时间和历史进程执行时间进行数据分析,确定启动子任务分组对应的任务调度器类型信息包括:
S610.服务器确定启动子任务分组内各个启动子任务的历史处理器执行时间的第一中位值时间;
S620.服务器确定启动子任务分组内各个启动子任务的历史进程执行时间的第二中位值时间;
S630.服务器对比第一中位值时间和第二中位值时间;
S640.服务器根据对比的结果,确定启动子任务分组对应的任务调度器类型信息。
具体地,服务器将每个启动子任务分组内各个启动子任务对应的历史处理器执行时间顺次排序并取50分位值,得到第一中位值时间。服务器将每个启动子任务分组内各个启动子任务对应的历史进程执行时间顺次排序并取50分位值,得到第二中位值时间。在一个具体的实施例中,计算50分位值时,在将历史处理器执行时间或历史进程执行时间按照从小到大或从大到小的顺序进行顺次排序后,历史处理器执行时间或历史进程执行时间的个数为奇数,则取位于最中间的历史处理器执行时间为第一中位值时间,取位于最中间的历史进程执行时间为第二中位值时间。历史处理器执行时间或历史进程执行时间的个数为偶数,则取最中间的两个历史处理器执行时间的平均值为第一中位值时间,取最中间的两个历史进程执行时间的平均值为第二中位值时间。
服务器对比第一中位值时间和第二中位值时间的大小,确定启动子任务分组对应的任务调度器类型信息。当第一中位值时间大于第二中位值时间时,说明该启动子任务分组中的启动子任务需要CPU进行更多的操作,此时需要采取限容调度策略,则对应的任务调度器类型为限容调度器,通过限容调度器更多地控制与CPU相关的操作。当第一中位值时间小于第二中位值时间时,说明该启动子任务分组中的启动子任务需要在输入输出上进行更多的操作,此时需要采取缓存调度策略,则对应的任务调度器类型为缓存调度器,通过缓存调度器更多地控制输入和输出相关的操作。
通过中位值时间进行数据分析,可以减少数据分析的计算量,从而提高数据分析的效率。
进一步地,请参见图7,服务器对启动子任务分组内的历史启动子任务的历史处理器执行时间和历史进程执行时间进行数据分析,确定启动子任务分组对应的任务调度器类型信息之后,还包括:
S710.客户端发送启动资源分配请求到服务器,启动资源分配请求包括目标启动任务中目标启动子任务的任务标签信息;
S720.服务器根据任务标签信息,确定每个目标启动子任务对应的启动子任务分组;
S730.服务器根据启动子任务分组和任务调度器类型信息间的对应关系,确定目标启动任务中的目标启动子任务和任务调度器类型信息间的对应关系。
S740.服务器将目标启动子任务和任务调度器类型信息间的对应关系发送到客户端。
具体地,客户端需要重新分配启动资源时,发送启动资源分配请求到服务器。启动资源分配请求包括目标启动任务中目标启动子任务的任务标签信息。服务器根据目标启动子任务的任务标签信息,查找到目标启动任务中各个目标启动子任务对应的启动子任务分组,从而通过启动子任务分组对应的任务调度器类型信息,确定目标启动任务中的目标启动子任务和任务调度器类型信息之间的对应关系,并将该对应关系发送到客户端。客户端在得到该对应关系后,根据该对应关系为核心启动子任务和非核心启动子任务分配任务调度器。
任务标签信息包括设备类型信息和任务名称信息,任务标签信息还可以是任何可以对目标启动子任务进行分组的信息,例如应用软件的名称信息、应用软件的类型信息、任务类型信息等。根据设备类型信息和任务名称信息,确定目标启动子任务对应的启动子任务分组。在一个具体的实施例中,目标启动子任务b对应的设备类型信息为A设备类型,任务名称信息为b任务类型,则确定该目标启动子任务对应A类型的设备下的b任务的启动子任务分组Ab。
每个启动子任务分组都具有对应的任务调度器类型信息,根据启动子任务分组对应的任务调度器类型信息,可以得到目标启动子任务和任务调度器类型信息之间的对应关系。在一个具体的实施例中,若启动子任务分组Ab对应的任务调度器类型信息为限容调度器类型,则目标启动子任务b与限容调度器存在对应关系。
确定目标任务中各个目标启动子任务对应的任务调度器类型后,将对应关系发送到客户端。请参见图8,在客户端的下一次应用软件的启动任务中,就可以根据该对应关系调用相应的任务调度器执行目标启动子任务,如图8所示的确定任务调度器类型信息的方法包括:
S810.根据核心启动子任务的任务标签信息,确定与核心启动子任务匹配的目标启动子任务;
S820.根据目标启动子任务和任务调度器类型信息之间的对应关系,确定核心启动任务中核心启动子任务对应的任务调度器类型信息。
S830.根据非核心启动子任务的任务标签信息,确定与非核心启动子任务匹配的目标启动子任务;
S840.根据目标启动子任务和任务调度器类型信息之间的对应关系,确定非核心启动任务中非核心启动子任务对应的任务调度器类型信息。
服务器根据客户端的启动资源分配请求中目标启动子任务的标签信息,确定对应关系,可以使得客户端通过对应关系对任务调度器进行调用,从而进行更合理的启动资源分配,提高启动效率,减少启动耗时。
在一个具体的实施例中,请参见图9,服务器侧进行的应用软件的启动方法包括:
S910.获取历史启动任务中的历史启动子任务的历史处理器执行时间、历史进程执行时间和任务标签信息;
S920.根据任务标签信息,对历史启动任务中的历史启动子任务进行分组,得到启动子任务分组;
S930.对启动子任务分组内的历史启动子任务的历史处理器执行时间和历史进程执行时间进行数据分析,确定启动子任务分组对应的任务调度器类型信息。
S940.获取启动资源分配请求,启动资源分配请求包括目标启动任务中目标启动子任务的任务标签信息;
S950.根据目标启动子任务的任务标签信息,确定每个目标启动子任务对应的启动子任务分组;
S960.根据启动子任务分组与任务调度器类型信息间的对应关系,确定目标启动子任务和任务调度器类型信息间的对应关系;
S970.将目标启动子任务和任务调度器类型信息间的对应关系发送到客户端。
具体地,服务器基于大数据分析得到目标启动子任务和任务调度器类型信息之间的对应关系,并将该对应关系发送到客户端。服务器包括进行大数据分析和响应客户端的启动资源分配请求发送对应关系两个作用。在服务器进行大数据分析时,获取客户端发送的运行状态数据,运行状态数据包括历史启动任务中的历史启动子任务的历史处理器执行时间、历史进程执行时间和任务标签信息,服务器可以在获取一定数量的运行状态数据后,对运行状态数据进行大数据分析。
服务器根据任务标签信息,对历史启动任务中的历史启动子任务进行分组。在一个具体的实施例中,任务标签信息可以包括设备类型信息和任务名称信息,任务标签信息还可以是任何可以对历史启动子任务进行分组的信息,例如应用软件的名称信息、应用软件的类型信息、任务类型信息等。在一个具体的实施例中,服务器可以通过聚类算法,对历史启动任务中的历史启动子任务进行分组,得到启动子任务分组。
服务器根据每一个启动子任务分组中的历史启动子任务对应的历史处理器执行时间和历史进程执行时间进行数据分析。服务器确定历史处理器执行时间对应的第一中位值时间,并确定历史进程执行时间对应的第二中位值时间。服务器比较第一中位值时间和第二中位值时间,确定每个启动子任务分组对应的任务调度器类型信息。
服务器接收客户端发送的启动资源分配请求,服务器根据启动资源分配请求包括的目标任务中目标启动子任务的任务标签信息,确定目标启动子任务对应的启动子任务分组。服务器根据启动子任务分组丢的任务调度器类型信息,得到目标启动子任务和任务调度器类型信息间的对应关系。服务器将该对应关系发送到客户端。
服务器基于大数据分析启动子任务的资源调度问题,可以提高任务调度器调用的合理性,从而加快启动子任务的处理效率,降低启动耗时。
在一个具体的实施例中,请参见图10,客户端侧进行的应用软件的启动方法包括:
S1010.获取当前启动任务中的启动子任务和任务调度器类型信息间的对应关系;
S1020.响应于应用软件的启动指令,将启动指令对应的当前启动任务划分为核心启动任务和非核心启动任务;
S1030.获取核心启动任务中核心启动子任务对应的第一启动顺序和对应的任务调度器类型信息;
S1040.根据核心启动子任务对应的任务调度器类型信息,确定核心启动子任务对应的第一任务调度器;
S1050.利用第一任务调度器按照第一启动顺序,执行核心启动子任务;
S1060.获取非核心启动任务中的非核心启动子任务对应的第二启动顺序和对应的任务调度器类型信息;
S1070.根据非核心启动子任务对应的任务调度器类型信息,确定非核心启动子任务对应的第二任务调度器;
S1080.利用第二任务调度器按照第二启动顺序,执行非核心启动子任务;
S1090.向服务器发送历史启动任务中的历史启动子任务的历史处理器执行时间、历史进程执行时间和任务标签信息;以使得所述服务器根据所述任务标签信息,对所述历史启动任务中的历史启动子任务进行分组,得到启动子任务分组;以及确定所述启动子任务分组内的历史启动子任务的历史处理器执行时间的第一中位值时间,并确定所述启动子任务分组内各个启动子任务的历史进程执行时间的第二中位值时间;以及根据所述第一中位值时间和所述第二中位值时间的对比结果,确定所述启动子任务分组与任务调度器类型信息间的对应关系。
S10100.向服务器发送启动资源分配请求到所述服务器,所述启动资源分配请求包括目标启动任务中目标启动子任务的任务标签信息;以使得所述服务器根据所述目标启动子任务的任务标签信息,确定每个目标启动子任务对应的启动子任务分组;以及根据所述启动子任务分组与任务调度器类型信息间的对应关系,确定所述目标启动子任务和任务调度器类型信息之间的对应关系;
S10110.接收所述服务器发送的所述目标启动子任务和任务调度器类型信息之间的对应关系。
具体地,客户端在响应应用软件的启动指令之前,确定执行核心启动子任务的第一启动顺序,并确定执行非核心启动子任务的第二启动顺序,可以通过对有向无环图进行拓扑排序的方式得到第一启动顺序和第二启动顺序。客户端在将本次的核心启动子任务和非核心启动子任务的运行状态数据发送到服务器后,还可以向服务器发送启动资源分配请求,获取服务器反馈的启动子任务和任务调度器类型信息间的对应关系。客户端可以每隔预设的一段时间向服务器发送启动资源分配请求,获取服务器动态更新的对应关系,并根据最新一次获得的对应关系,进行下一次应用软件的启动任务。
在进行启动任务时,客户端对当前启动任务中的核心启动任务和非核心启动任务进行划分。客户端获取核心启动任务对应的第一启动顺序和对应的任务调度器类型信息,通过任务调度器类型信息确定每一个核心启动子任务对应的第一任务调度器,第一任务调度器可以为限容调度器或缓存调度器。利用第一任务调度器,按照第一启动顺序依次执行核心启动子任务,完成框架启动。客户端获取非核心启动任务对应的第二启动顺序和对应的任务调度器类型信息,通过任务调度器类型信息确定每一个非核心启动子任务对应的第二任务调度器,第二任务调度器可以为限容调度器或缓存调度器。利用第二任务调度器,按照第二启动顺序,与首页启动、首页数据加载和首页界面渲染等操作并行执行非核心启动子任务。
客户端通过将启动子任务进行优先级排序,可以提高资源利用率,并将非核心启动任务与首页启动并行,减少启动耗时。
在一个具体的实施例中,请参见图11,图11为应用软件X的启动方法中客户端和服务器的交互示意图,本公开提出的一种应用软件的启动方法应用于安卓系统的应用软件中,假设应用软件X的启动任务中具有8个启动子任务,其中包括coretask1、coretask2、coretask3、coretask4、coretask5和coretask6六个核心启动子任务,以及task1和task2这两个非核心启动子任务。客户端响应于应用软件X启动指令,确定启动任务中的6个核心启动子任务和2个非核心启动子任务。获取6个核心启动子任务对应的第一启动顺序,第一启动顺序为coretask1→coretask2→coretask3→coretask4→coretask5→coretask6。获取6个核心启动子任务对应的任务调度器类型信息,确定每个核心启动子任务对应的任务调度器为coretask1对应缓存调度器,coretask2对应限容调度器,coretask3对应限容调度器,coretask4对应限容调度器,coretask5对应缓存调度器,coretask6对应缓存调度器。按照第一启动顺序,调用缓存调度器执行coretask1,再调用限容调度器执行coretask2,以此类推,直到最后调用缓存调度器执行coretask6,完成框架启动部分。
获取2个非核心启动子任务对应的第二启动顺序,第二启动顺序为task1→task2。获取2个非核心启动子任务对应的任务调度器类型信息,确定每个非核心启动子任务对应的任务调度器为task1对应限容调度器,task2对应缓存调度器。按照第二启动顺序,调用限容调度器执行task1,再调用缓存调度器执行task2,并同时执行首页启动、首页数据加载和首页界面渲染的操作。
完成task2后,客户端将核心启动子任务和非核心启动子任务的运行状态数据发送到服务器中,服务器进行数据分析后,根据客户端的启动资源分配请求,将启动子任务与任务调度器类型信息间的对应关系发送到客户端中,客户端以此确定执行各个启动子任务时需要调用的任务调度器。
本公开提出了一种应用软件的启动方法,该方法包括:客户端响应启动指令,将启动任务划分为核心启动任务和非核心启动任务,并获取核心启动任务对应的第一启动顺序和各个核心启动子任务对应的任务调度器,利用任务调度器按照第一启动顺序执行框架启动。客户端获取非核心启动任务对应的第二启动顺序和各个非核心启动子任务对应的任务调度器,利用任务调度器按照第二启动顺序执行非核心启动子任务。该方法中服务器基于大数据分析启动子任务的资源调度问题,可以提高任务调度器调用的合理性,客户端根据启动子任务的优先级进行排序,并在启动时并行执行非核心启动子任务和首页启动,从而加快启动子任务的处理效率,降低启动耗时。
图12是根据一示例性实施例示出的一种应用软件的启动装置框图。参照图12,该装置包括启动指令响应模块1210、第一信息获取模块1220、第一任务调度器确定模块1230、第一启动执行模块1240、第二信息获取模块1250、第二任务调度器确定模块1260和第二启动执行模块1270。
启动指令响应模块1210,被配置为执行客户端响应于应用软件的启动指令,将启动指令对应启动任务划分为核心启动任务和非核心启动任务;
第一信息获取模块1220,被配置为执行客户端获取核心启动任务中核心启动子任务对应的第一启动顺序和对应的任务调度器类型信息;
第一任务调度器确定模块1230,被配置为执行客户端根据核心启动子任务对应的任务调度器类型信息,确定核心启动子任务对应的第一任务调度器;
第一启动执行模块1240,被配置为执行客户端利用第一任务调度器按照第一启动顺序,执行核心启动子任务;
第二信息获取模块1250,被配置为执行客户端获取非核心启动任务中的非核心启动子任务对应的第二启动顺序和对应的任务调度器类型信息
第二任务调度器确定模块1260,被配置为执行客户端根据非核心启动子任务对应的任务调度器类型信息,确定非核心启动子任务对应的第二任务调度器;
第二启动执行模块1270,被配置为执行客户端利用第二任务调度器按照第二启动顺序,执行非核心启动子任务。
进一步地,该装置还包括:第一启动顺序确定模块和第二启动顺序确定模块。
第一启动顺序确定模块包括第一图计算单元和第一拓扑排序单元;
第一图计算单元,被配置为执行客户端根据预设的框架启动优先级信息,确定核心启动子任务的有向无环图;
第一拓扑排序单元,被配置为执行客户端基于核心启动子任务的有向无环图,确定核心启动子任务的拓扑排序,并将核心启动子任务的拓扑排序作为第一启动顺序。
第二启动顺序确定模块包括第二图计算单元和第二拓扑排序单元;
第二图计算单元,被配置为执行客户端根据预设的首页启动优先级信息,确定非核心启动子任务的有向无环图;
第二拓扑排序单元,被配置为执行客户端基于非核心启动子任务的有向无环图,确定非核心启动子任务的拓扑排序,并将非核心启动子任务的拓扑排序作为第二启动顺序。
进一步地,客户端还包括:运行状态数据发送模块,服务器端包括:启动子任务分组模块和数据分析模块;
运行状态数据发送模块,被配置为执行客户端发送历史启动任务中的历史启动子任务的历史处理器执行时间、历史进程执行时间和任务标签信息;
启动子任务分组模块,被配置为执行服务器根据任务标签信息,对历史启动任务中的历史启动子任务进行分组,得到启动子任务分组;
数据分析模块,被配置为执行服务器对启动子任务分组内的历史启动子任务的历史处理器执行时间和历史进程执行时间进行数据分析,确定启动子任务分组对应的任务调度器类型信息。
进一步地,客户端还包括资源分配请求发送模块和对应关系接收模块,服务器端还包括:目标启动子任务分组确定模块、对应关系确定模块和对应关系发送模块。
资源分配请求发送模块,被配置为执行客户端发送启动资源分配请求到服务器,启动资源分配请求包括目标启动任务中目标启动子任务的任务标签信息;
目标启动子任务分组确定模块,被配置为执行服务器根据任务标签信息,确定每个目标启动子任务对应的启动子任务分组;
对应关系确定模块,被配置为执行服务器根据启动子任务分组和任务调度器类型信息间的对应关系,确定目标启动任务中的目标启动子任务和任务调度器类型信息间的对应关系;
对应关系接收模块,被配置为执行接收服务器发送的目标启动子任务和任务调度器类型信息间的对应关系。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了应用软件的启动设备,包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为执行该指令,以实现如本公开实施例中应用软件的启动方法。
图13是根据一示例性实施例示出的应用软件的启动设备的框图,该设备可以是客户端,其内部结构图可以如图13所示,该设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该设备的处理器用于提供计算和控制能力。该设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图像瑕疵填充网络确定或图像瑕疵处理的方法。该设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该设备的输入装置可以是显示屏上覆盖的触摸层,也可以是设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
图14是根据一示例性实施例示出的应用软件的启动设备的框图,该设备可以是服务器,其内部结构图可以如图14所示。该设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该设备的处理器用于提供计算和控制能力。该设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用软件的启动方法。
本领域技术人员可以理解,图13和图14中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由应用软件的启动设备的处理器执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
当该存储介质中的指令由应用软件的启动设备的处理器执行时,使得应用软件的启动设备能够执行上述的一种应用软件的启动方法。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品存储在存储介质中,使得计算机设备的处理器能够从存储介质中读取该计算机程序产品,并执行如上述的一种应用软件的启动方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种应用软件的启动方法,其特征在于,所述方法包括:
响应于应用软件的启动指令,将所述启动指令对应启动任务划分为核心启动任务和非核心启动任务;
获取所述核心启动任务中核心启动子任务对应的任务调度器类型信息和对应的第一启动顺序;
根据所述核心启动子任务对应的任务调度器类型信息,确定所述核心启动子任务对应的第一任务调度器;
利用所述第一任务调度器按照所述第一启动顺序,执行所述核心启动子任务;
获取所述非核心启动任务中的非核心启动子任务对应的任务调度器类型信息和对应的第二启动顺序;
根据所述非核心启动子任务对应的任务调度器类型信息,确定所述非核心启动子任务对应的第二任务调度器;
利用所述第二任务调度器按照所述第二启动顺序,执行所述非核心启动子任务。
2.根据权利要求1所述的一种应用软件的启动方法,其特征在于,所述响应于应用软件的启动指令,确定所述启动指令对应启动任务中的核心启动任务和非核心启动任务之前,还包括:
根据预设的框架启动优先级信息,确定所述核心启动子任务的有向无环图;
基于所述核心启动子任务的有向无环图,确定所述核心启动子任务的拓扑排序;
将所述核心启动子任务的拓扑排序作为所述第一启动顺序。
3.根据权利要求1所述的一种应用软件的启动方法,其特征在于,所述响应于应用软件的启动指令,确定所述启动指令对应启动任务中的核心启动任务和非核心启动任务之前,还包括:
根据预设的首页启动优先级信息,确定所述非核心启动子任务的有向无环图;
基于所述非核心启动子任务的有向无环图,确定所述非核心启动子任务的拓扑排序;
将所述非核心启动子任务的拓扑排序作为所述第二启动顺序。
4.根据权利要求1所述的一种应用软件的启动方法,其特征在于,所述方法还包括:
向服务器发送历史启动任务中的历史启动子任务的历史处理器执行时间、历史进程执行时间和任务标签信息;以使得所述服务器根据所述任务标签信息,对所述历史启动任务中的历史启动子任务进行分组,得到启动子任务分组;以及确定所述启动子任务分组内的历史启动子任务的历史处理器执行时间的第一中位值时间,并确定所述启动子任务分组内各个启动子任务的历史进程执行时间的第二中位值时间;以及根据所述第一中位值时间和所述第二中位值时间的对比结果,确定所述启动子任务分组与任务调度器类型信息间的对应关系。
5.根据权利要求4所述的一种应用软件的启动方法,其特征在于,所述方法还包括:
向服务器发送启动资源分配请求到所述服务器,所述启动资源分配请求包括目标启动任务中目标启动子任务的任务标签信息;以使得所述服务器根据所述目标启动子任务的任务标签信息,确定每个目标启动子任务对应的启动子任务分组;以及根据所述启动子任务分组与任务调度器类型信息间的对应关系,确定所述目标启动子任务和任务调度器类型信息之间的对应关系;
接收所述服务器发送的所述目标启动子任务和任务调度器类型信息之间的对应关系。
6.根据权利要求5所述的一种启动资源分配方法,其特征在于,所述获取所述核心启动任务中核心启动子任务对应的任务调度器类型信息包括:
根据所述核心启动子任务的任务标签信息,确定与所述核心启动子任务匹配的目标启动子任务;
根据所述目标启动子任务和任务调度器类型信息之间的对应关系,确定所述核心启动任务中核心启动子任务对应的任务调度器类型信息。
7.根据权利要求5所述的一种启动资源分配方法,其特征在于,所述获取所述非核心启动任务中的非核心启动子任务对应的任务调度器类型信息包括:
根据所述非核心启动子任务的任务标签信息,确定与所述非核心启动子任务匹配的目标启动子任务;
根据所述目标启动子任务和任务调度器类型信息之间的对应关系,确定所述非核心启动任务中非核心启动子任务对应的任务调度器类型信息。
8.一种应用软件的启动装置,其特征在于,所述装置包括:
启动指令响应模块,被配置为执行响应于应用软件的启动指令,将所述启动指令对应启动任务划分为核心启动任务和非核心启动任务;
第一信息获取模块,被配置为执行获取所述核心启动任务中核心启动子任务对应的任务调度器类型信息和对应的第一启动顺序;
第一任务调度器确定模块,被配置为执行根据所述核心启动子任务对应的任务调度器类型信息,确定所述核心启动子任务对应的第一任务调度器;
第一启动执行模块,被配置为执行所述客户端利用所述第一任务调度器按照所述第一启动顺序,执行所述核心启动子任务;
第二信息获取模块,被配置为执行所述客户端获取所述非核心启动任务中的非核心启动子任务对应的任务调度器类型信息和对应的第二启动顺序;
第二任务调度器确定模块,被配置为执行所述客户端根据所述非核心启动子任务对应的任务调度器类型信息,确定所述非核心启动子任务对应的第二任务调度器;
第二启动执行模块,被配置为执行利用所述客户端所述第二任务调度器按照所述第二启动顺序,执行所述非核心启动子任务。
9.一种应用软件的启动设备,其特征在于,所述设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1到7中任一项所述的一种应用软件的启动方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由应用软件的启动设备的处理器执行时,使得所述应用软件的启动设备能够执行如权利要求1到7中任一项所述的一种应用软件的启动方法。
CN202011019593.8A 2020-09-24 2020-09-24 一种应用软件的启动方法、装置、设备和介质 Pending CN112181517A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011019593.8A CN112181517A (zh) 2020-09-24 2020-09-24 一种应用软件的启动方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011019593.8A CN112181517A (zh) 2020-09-24 2020-09-24 一种应用软件的启动方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN112181517A true CN112181517A (zh) 2021-01-05

Family

ID=73944705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011019593.8A Pending CN112181517A (zh) 2020-09-24 2020-09-24 一种应用软件的启动方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN112181517A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114116068A (zh) * 2021-12-02 2022-03-01 重庆紫光华山智安科技有限公司 服务启动优化方法、装置、电子设备和可读存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487919A (zh) * 2014-10-02 2016-04-13 联发科技股份有限公司 多核心处理器系统及任务分配方法
CN106126203A (zh) * 2016-06-15 2016-11-16 宇龙计算机通信科技(深圳)有限公司 一种ota开机加速方法及系统
CN107402790A (zh) * 2017-07-31 2017-11-28 广东欧珀移动通信有限公司 应用程序的启动方法、装置、存储介质和终端
CN108196892A (zh) * 2017-12-29 2018-06-22 北京安云世纪科技有限公司 用于对系统启动过程进行定制的方法、装置以及移动终端
CN108769254A (zh) * 2018-06-25 2018-11-06 星环信息科技(上海)有限公司 基于抢占式调度的资源共享使用方法、系统及设备
CN109062680A (zh) * 2018-08-15 2018-12-21 腾讯科技(深圳)有限公司 一种数据加载方法、装置和存储介质
CN109062629A (zh) * 2018-07-13 2018-12-21 成都泛美视界科技有限公司 一种飞行模拟软件的性能优化方法
CN110262847A (zh) * 2019-05-14 2019-09-20 百度(中国)有限公司 应用程序启动加速方法、装置及机器可读存储介质
CN111258740A (zh) * 2020-02-03 2020-06-09 北京无限光场科技有限公司 一种用于启动应用程序的方法、装置和电子设备
CN111488220A (zh) * 2020-04-09 2020-08-04 北京字节跳动网络技术有限公司 一种启动请求处理方法、装置和电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487919A (zh) * 2014-10-02 2016-04-13 联发科技股份有限公司 多核心处理器系统及任务分配方法
CN106126203A (zh) * 2016-06-15 2016-11-16 宇龙计算机通信科技(深圳)有限公司 一种ota开机加速方法及系统
CN107402790A (zh) * 2017-07-31 2017-11-28 广东欧珀移动通信有限公司 应用程序的启动方法、装置、存储介质和终端
CN108196892A (zh) * 2017-12-29 2018-06-22 北京安云世纪科技有限公司 用于对系统启动过程进行定制的方法、装置以及移动终端
CN108769254A (zh) * 2018-06-25 2018-11-06 星环信息科技(上海)有限公司 基于抢占式调度的资源共享使用方法、系统及设备
CN109062629A (zh) * 2018-07-13 2018-12-21 成都泛美视界科技有限公司 一种飞行模拟软件的性能优化方法
CN109062680A (zh) * 2018-08-15 2018-12-21 腾讯科技(深圳)有限公司 一种数据加载方法、装置和存储介质
CN110262847A (zh) * 2019-05-14 2019-09-20 百度(中国)有限公司 应用程序启动加速方法、装置及机器可读存储介质
CN111258740A (zh) * 2020-02-03 2020-06-09 北京无限光场科技有限公司 一种用于启动应用程序的方法、装置和电子设备
CN111488220A (zh) * 2020-04-09 2020-08-04 北京字节跳动网络技术有限公司 一种启动请求处理方法、装置和电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114116068A (zh) * 2021-12-02 2022-03-01 重庆紫光华山智安科技有限公司 服务启动优化方法、装置、电子设备和可读存储介质
CN114116068B (zh) * 2021-12-02 2023-06-02 重庆紫光华山智安科技有限公司 服务启动优化方法、装置、电子设备和可读存储介质

Similar Documents

Publication Publication Date Title
US20200192707A1 (en) Performance-based hardware emulation in an on-demand network code execution system
US10031774B2 (en) Scheduling multi-phase computing jobs
CN113535367B (zh) 任务调度方法及相关装置
CN112051993B (zh) 状态机模板的生成及任务处理方法、装置、介质及设备
CN109886859B (zh) 数据处理方法、系统、电子设备和计算机可读存储介质
CN111367630A (zh) 一种基于云计算的多用户多优先级的分布式协同处理方法
CN114610474B (zh) 一种异构超算环境下多策略的作业调度方法及系统
CN110569252B (zh) 一种数据处理系统及方法
CN112416585A (zh) 面向深度学习的gpu资源管理与智能化调度方法
Zhong et al. Speeding up Paulson’s procedure for large-scale problems using parallel computing
Tan et al. Serving DNN models with multi-instance gpus: A case of the reconfigurable machine scheduling problem
CN111857984A (zh) 银行系统中的作业调用处理方法、装置和计算机设备
CN112000460A (zh) 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备
CN114637536A (zh) 任务处理方法、计算协处理器、芯片及计算机设备
CN112181517A (zh) 一种应用软件的启动方法、装置、设备和介质
CN113608858A (zh) 一种基于MapReduce架构的数据同步用块任务执行系统
CN112214325A (zh) Fpga任务动态编排方法、装置、芯片和存储介质
Staffolani et al. RLQ: Workload allocation with reinforcement learning in distributed queues
CN113225269B (zh) 基于容器的工作流调度方法、装置、系统及存储介质
CN113485810A (zh) 一种任务的调度执行方法、装置、设备及存储介质
Assogba et al. On realizing efficient deep learning using serverless computing
CN114327856A (zh) 数据处理方法、装置、电子设备及存储介质
Hongyan et al. Predicting misconfiguration-induced unsuccessful executions of jobs in big data system
CN113918288A (zh) 任务处理方法、装置、服务器及存储介质
Nardelli QoS-aware deployment and adaptation of data stream processing applications in geo-distributed environments

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