一种编译方法及装置与流程

文档序号:30696922发布日期:2022-07-09 17:53阅读:74来源:国知局
一种编译方法及装置与流程

1.本公开涉及计算机技术领域,具体而言,涉及一种编译方法及装置。


背景技术:

2.开发人员进行程序开发时,经常需要对编写的代码进行编译,对于大型程序开发项目来说,单机编译的耗费的时间可能会非常长。为此,“分布式编译”的方法被提出,可以结合多台计算机的计算能力,共同完成编译任务。
3.在分布式编译场景下,主编译终端master在将编译任务分发给从属编译终端worker之前,需要计算出编译任务的输入和输出,也即worker需要哪些文件才能编译执行任务和master需要任务执行完毕后产生的哪些文件,在计算好输入后,master才能够将输入发送给worker,worker在执行完毕后也需要将产物作为输出返回给master。由于计算输入及输出涉及到编译任务的依赖分析,而依赖分析较为复杂,需要消耗大量的计算资源和时间,并且不同的编程语言难以使用同一套计算方案,导致分布式编译的效率难以提高。


技术实现要素:

4.本公开实施例至少提供一种编译方法及装置。
5.第一方面,本公开实施例提供了一种编译方法,应用于主执行终端,包括:
6.获取针对目标源文件的编译任务列表;所述编译任务列表指示有多个编译任务;
7.针对每个所述编译任务,基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端;
8.在所述目标执行终端为主执行终端的情况下,执行所述编译任务,并将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端;
9.在所述编译任务对应的目标执行终端为所述多个候选执行终端中除所述主执行终端的从属执行终端的情况下,将所述编译任务分配给所述目标执行终端,以使所述目标执行终端基于接收到的可编译文件执行被分配的编译任务。
10.一种可选的实施方式中,所述方法还包括:
11.接收所述多个候选执行终端中除所述主执行终端外的从属执行终端在执行编译任务过程中生成的可执行文件;
12.所述在所述编译任务对应的目标执行终端为主执行终端的情况下,执行所述编译任务,包括:
13.在所述编译任务需要所述从属执行终端生成的目标可执行文件的情况下,从所述从属执行终端发送的可执行文件中,查找执行所述编译任务所需的目标可执行文件;
14.基于查找到的所述目标可执行文件,执行所述编译任务。
15.一种可选的实施方式中,所述将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端,包括:
16.在所述编译任务执行完成后,确定执行所述编译任务的过程中生成的各个新文件的类型信息;
17.在所述新文件的类型信息为可编译文件的情况下,将所述新文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端。
18.一种可选的实施方式中,所述基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端,包括:
19.在所述编译任务的任务类型为编译类任务的情况下,从所述多个候选执行终端中选取出除主执行终端之外的从属执行终端作为所述编译任务对应的目标执行终端;
20.在所述编译任务的任务类型为非编译类任务的情况下,确定所述主执行终端为所述编译任务对应的目标执行终端。
21.第二方面,本公开实施例还提供了另一种编译方法,应用于从属执行终端,包括:
22.接收所述主执行终端分配给所述从属执行终端的编译任务,以及,接收主执行终端在执行其他编译任务的过程中生成的可编译文件;
23.基于所述可编译文件,执行被分配的编译任务。
24.一种可选的实施方式中,所述基于所述可编译文件,执行被分配的编译任务,包括:
25.从接收到的可编译文件中,查找执行所述编译任务所需的目标可编译文件;
26.基于查找到的所述目标可编译文件,执行被分配的编译任务。
27.一种可选的实施方式中,所述方法还包括:
28.将执行所述编译任务的过程中生成的可执行文件发送至所述主执行终端,所述可执行文件用于所述主执行终端执行需要使用所述可执行文件的编译任务。
29.第三方面,本公开实施例还提供一种编译装置,用于主执行终端,包括:
30.获取模块,用于获取针对目标源文件的编译任务列表;所述编译任务列表指示有多个编译任务;
31.筛选模块,用于针对每个所述编译任务,基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端;
32.执行模块,用于在所述目标执行终端为主执行终端的情况下,执行所述编译任务,并将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端;在所述编译任务对应的目标执行终端为所述多个候选执行终端中除所述主执行终端的从属执行终端的情况下,将所述编译任务分配给所述目标执行终端,以使所述目标执行终端基于接收到的可编译文件执行被分配的编译任务。
33.一种可选的实施方式中,所述装置还包括第一接收模块,用于:
34.接收所述多个候选执行终端中除所述主执行终端外的从属执行终端在执行编译任务过程中生成的可执行文件;
35.所述执行模块在所述编译任务对应的目标执行终端为主执行终端的情况下,执行所述编译任务时,用于:
36.在所述编译任务需要所述从属执行终端生成的目标可执行文件的情况下,从所述从属执行终端发送的可执行文件中,查找执行所述编译任务所需的目标可执行文件;
37.基于查找到的所述目标可执行文件,执行所述编译任务。
38.一种可选的实施方式中,所述执行模块在将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端时,用于:
39.在所述编译任务执行完成后,确定执行所述编译任务的过程中生成的各个新文件的类型信息;
40.在所述新文件的类型信息为可编译文件的情况下,将所述新文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端。
41.一种可选的实施方式中,所述筛选模块在基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端时,用于:
42.在所述编译任务的任务类型为编译类任务的情况下,从所述多个候选执行终端中选取出除主执行终端之外的从属执行终端作为所述编译任务对应的目标执行终端;
43.在所述编译任务的任务类型为非编译类任务的情况下,确定所述主执行终端为所述编译任务对应的目标执行终端。
44.第四方面,本公开实施例还提供了另一种编译装置,用于从属执行终端,包括:
45.第二接收模块,用于接收所述主执行终端分配给所述从属执行终端的编译任务,以及,接收主执行终端在执行其他编译任务的过程中生成的可编译文件;
46.编译模块,用于基于所述可编译文件,执行被分配的编译任务。
47.一种可选的实施方式中,所述编译模块具体用于:
48.从接收到的可编译文件中,查找执行所述编译任务所需的目标可编译文件;
49.基于查找到的所述目标可编译文件,执行被分配的编译任务。
50.一种可选的实施方式中,所述装置还包括发送模块:
51.将执行所述编译任务的过程中生成的可执行文件发送至所述主执行终端,所述可执行文件用于所述主执行终端执行需要使用所述可执行文件的编译任务。
52.第五方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或者,执行上述第二方面,或第二方面中任一种可能的实时方式中的步骤。
53.第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或者,执行上述第二方面,或第二方面中任一种可能的实时方式中的步骤。
54.本公开实施例提供的编译方法及装置,获取针对目标源文件的编译任务列表;所述编译任务列表指示有多个编译任务;针对每个所述编译任务,基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端;在所述目标执行终端为主执行终端的情况下,执行所述编译任务,并将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端;在所述编译任务对应的目标执行终端为所述多个候选执行终端中除所述主执行终端的从属执行终端的情况下,将所述编译任务分配给所述目标执行终端,以使所述目标执行终端基于
接收到的可编译文件执行被分配的编译任务。
55.本公开实施例通过主执行终端将执行编译任务的过程中生成的可编译文件发送至从属执行终端,以使从属执行终端根据接收到的可编译文件执行被分配的编译任务,不需要预先计算各个编译任务的输入及输出,能够大幅度缩短分布式编译的速度,并节约计算资源。
56.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
57.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
58.图1示出了本公开实施例所提供的一种编译系统的示意图;
59.图2示出了本公开实施例所提供的一种编译方法的流程图;
60.图3示出了本公开实施例所提供的另一种编译方法的流程图;
61.图4示出了本公开实施例所提供的再一种编译方法的流程图;
62.图5示出了本公开实施例所提供的一种编译装置的示意图;
63.图6示出了本公开实施例所提供的另一种编译装置的示意图;
64.图7示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
65.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
66.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
67.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
68.经研究发现,分布式编译系统中的主执行终端通常需要在分配编译任务前,计算各个编译任务的输入与输出,由于涉及到依赖计算,导致需要消耗大量的计算资源和时间,并且不同的编程语言难以使用同一套计算方案,导致分布式编译的效率难以提高。
69.基于上述研究,本公开提供了一种编译方法及装置,通过主执行终端将执行编译任务的过程中生成的可编译文件发送至从属执行终端,以使从属执行终端根据接收到的可编译文件执行被分配的编译任务,不需要预先计算各个编译任务的输入及输出,能够大幅度缩短分布式编译的速度,并节约计算资源。
70.为便于对本实施例进行理解,首先对本公开实施例所公开的一种编译系统进行详细介绍。参见图1所示,为本公开实施例提供的一种编译系统,该编译系统包括主执行终端master及一个或多个从属执行终端worker,主执行终端及从属执行终端下分别设置了文件管理模块cfs,文件管理模块之间可以进行网络通信,传输文件,主执行终端及从属执行终端之间也可以直接进行网络通信,文件管理模块可以作为对应的执行终端的本地磁盘的一部分,供执行终端读取写入数据,并能够将对应的执行终端本地磁盘的数据发送给其他文件管理模块,主执行终端能够给从属执行终端分配编译任务task,还可以将可编译文件,如后缀为.c、.h的文件写入其对应的文件管理模块,并由该文件管理模块将其发送给从属执行终端的文件管理模块。从属执行终端可以将可执行文件,如后缀为.o的文件写入其对应的文件管理模块,该文件管理模块并将其发送主执行终端的文件管理模块。
71.为了详细介绍本公开所提供的编译方法,将分别以主执行终端及从属执行终端为执行主体进行介绍。
72.参见图2所示,为本公开实施例提供的编译方法的流程图,所述方法的执行主体为主执行终端,包括步骤s201~s204,其中:
73.s201、获取针对目标源文件的编译任务列表;所述编译任务列表指示有多个编译任务。
74.其中,目标源文件可以为由计算机编程语言编写的代码文件,主执行终端可以获取目标源文件,并通过编译框架对目标源文件进行分析,生成多个编译任务,以及针对目标源文件的编译任务列表。编译任务列表中指示有多个编译任务。
75.s202、针对每个所述编译任务,基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端。
76.其中,候选执行终端可以包括主执行终端和从属执行终端;编译任务可以分为多种,可以将需要进行编译步骤的编译类任务分给从属执行终端,如生成.o类型文件的任务,将其他不需要进行编译的非编译类任务分配给主执行终端。通过编译任务的任务类型,即可确定将编译任务分配给主执行终端还是从属执行终端,若从属执行终端存在多个,则可以根据各个从属执行终端的负载及已经被分配的编译任务进行分配。
77.s203、在所述目标执行终端为主执行终端的情况下,执行所述编译任务,并将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端。
78.该步骤中,若目标执行终端为主执行终端,则可以由主执行终端执行该编译任务,若执行该编译任务的过程中,生成了可编译文件,则可以将生成的可编译文件发送给各个从属执行终端。
79.具体的,可以直接将生成的可编译文件发送给所有的从属执行终端,这样,不需要预先计算各个从属执行终端执行编译任务所需要的输出,从属执行终端直接按照编译任务指示的路径访问所需的文件即可。
80.其中,主执行终端可以通过自身部署的上述文件管理模块发送可执行文件,执行编译任务的进程不需要对发送文件和接收文件的过程进行感知,直接访问本地磁盘即可。
81.进一步的,主执行终端还可以预先将目标源文件发送至从属执行终端,这样,从属执行终端既包含初始的目标源文件,也包含编译过程中新生成的可编译文件,能够执行任何需要进行编译步骤的编译任务。
82.示例性的,每当主执行终端完成编译任务时,可以确定执行该编译任务过程中生成的各个新文件的类型信息,若类型信息为可编译文件,则将其发送至各个从属执行终端,若不为可编译文件,则可以不对其进行操作。
83.s204、在所述编译任务对应的目标执行终端为所述多个候选执行终端中除所述主执行终端的从属执行终端的情况下,将所述编译任务分配给所述目标执行终端,以使所述目标执行终端基于接收到的可编译文件执行被分配的编译任务。
84.该步骤中,由于主执行终端已经将当前生成的所有可编译文件发送至了所有的从属执行终端,任意从属执行终端上的文件都能够支持其执行被分配的编译任务,由于文件管理模块的原因,从属执行终端只需要正常执行该任务,读取本地磁盘即可访问所需要的可编译文件。
85.进一步的,主执行终端还可以接收从属执行终端在执行编译任务过程中产生的可执行文件,并且,在当前执行的编译任务需要从属执行终端生成的目标可执行文件的情况下,从接收的可执行文件中,查找上述目标可执行文件。
86.具体的,通过文件管理模块,可以将接收到的可执行文件存储于对应的编译目录下,执行编译任务的进程只需按照正常执行流程即可查找到目标可执行文件,并基于目标可执行文件执行当前的编译任务。
87.参见图3所示,为本公开实施例提供的另一种编译方法的流程图,所述方法的执行终端为从属执行终端,包括步骤s301~s302,其中:
88.s301、接收所述主执行终端分配给所述从属执行终端的编译任务,以及,接收主执行终端在执行其他编译任务的过程中生成的可编译文件。
89.该步骤中,从属执行终端可以通过其部署的文件管理模块接收主执行终端在执行其他编译任务的过程中生成的可编译文件,并将其存储至对应的编译路径下,也可以接收主执行模块预先发送的目标源文件,这样,在主执行终端将编译任务分配给从属执行终端时,从属执行终端上必定会存在用于执行该编译任务的文件。
90.s302、基于所述可编译文件,执行被分配的编译任务。
91.该步骤中,从属执行终端可以正常开始执行编译任务的逻辑,直接在编译目录下查找执行编译任务所需的目标可编译文件,并基于查找到的目标可编译文件执行被分配的编译任务。
92.在完成被分配的编译任务之后,从属执行终端可以将执行编译任务过程中生成的可执行编译文件发送至主执行终端,这样,主执行终端即可利用上述可执行文件执行其他编译任务。
93.参见图4所示,为本公开实施例提供的再一种编译方法,该方法中,主执行终端master获取编译任务列表tl,然后确定tl中是否还有未完成任务,若不存在,则直接结束;若存在,则从tl中取出一个编译任务t,并判断是否需要将该任务发送给从属执行终端
worker,若不需要,则master直接执行该任务t,在执行该任务t的过程中生成了新的文件f1,并将其写入至master上部署的文件管理模块cfs1,由cfs1判断是否需要将f1发给worker,在判断结束时根据判断结果进行文件转发,并等待执行下一个变异任务;若需要,则将其发送给worker,worker执行该编译任务t,在执行过程中产生新的文件f2,将其写入worker上部署的文件管理模块cfs2,由cfs2判断是否需要将f2转发给master,若需要,则将其转发给master,然后等待执行下一个任务,若不需要,则直接等待执行下一个任务。
94.本公开实施例提供的编译方法,获取针对目标源文件的编译任务列表;所述编译任务列表指示有多个编译任务;针对每个所述编译任务,基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端;在所述目标执行终端为主执行终端的情况下,执行所述编译任务,并将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端;在所述编译任务对应的目标执行终端为所述多个候选执行终端中除所述主执行终端的从属执行终端的情况下,将所述编译任务分配给所述目标执行终端,以使所述目标执行终端基于接收到的可编译文件执行被分配的编译任务。
95.本公开实施例通过主执行终端将执行编译任务的过程中生成的可编译文件发送至从属执行终端,以使从属执行终端根据接收到的可编译文件执行被分配的编译任务,不需要预先计算各个编译任务的输入及输出,能够大幅度缩短分布式编译的速度,并节约计算资源。
96.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
97.基于同一发明构思,本公开实施例中还提供了与编译方法对应的编译装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述编译方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
98.参照图5所示,为本公开实施例提供的一种编译装置的示意图,用于主执行终端,所述装置包括:
99.获取模块510,用于获取针对目标源文件的编译任务列表;所述编译任务列表指示有多个编译任务;
100.筛选模块520,用于针对每个所述编译任务,基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端;
101.执行模块530,用于在所述目标执行终端为主执行终端的情况下,执行所述编译任务,并将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端;在所述编译任务对应的目标执行终端为所述多个候选执行终端中除所述主执行终端的从属执行终端的情况下,将所述编译任务分配给所述目标执行终端,以使所述目标执行终端基于接收到的可编译文件执行被分配的编译任务。
102.一种可选的实施方式中,所述装置还包括第一接收模块,用于:
103.接收所述多个候选执行终端中除所述主执行终端外的从属执行终端在执行编译任务过程中生成的可执行文件;
104.所述执行模块530在所述编译任务对应的目标执行终端为主执行终端的情况下,
执行所述编译任务时,用于:
105.在所述编译任务需要所述从属执行终端生成的目标可执行文件的情况下,从所述从属执行终端发送的可执行文件中,查找执行所述编译任务所需的目标可执行文件;
106.基于查找到的所述目标可执行文件,执行所述编译任务。
107.一种可选的实施方式中,所述执行模块530在将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端时,用于:
108.在所述编译任务执行完成后,确定执行所述编译任务的过程中生成的各个新文件的类型信息;
109.在所述新文件的类型信息为可编译文件的情况下,将所述新文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端。
110.一种可选的实施方式中,所述筛选模块520在基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端时,用于:
111.在所述编译任务的任务类型为编译类任务的情况下,从所述多个候选执行终端中选取出除主执行终端之外的从属执行终端作为所述编译任务对应的目标执行终端;
112.在所述编译任务的任务类型为非编译类任务的情况下,确定所述主执行终端为所述编译任务对应的目标执行终端。
113.参照图6所示,为本公开实施例提供的另一种编译装置的示意图,用于从属执行终端,所述装置包括:
114.第二接收模块610,用于接收所述主执行终端分配给所述从属执行终端的编译任务,以及,接收主执行终端在执行其他编译任务的过程中生成的可编译文件;
115.编译模块620,用于基于所述可编译文件,执行被分配的编译任务。
116.一种可选的实施方式中,所述编译模块630具体用于:
117.从接收到的可编译文件中,查找执行所述编译任务所需的目标可编译文件;
118.基于查找到的所述目标可编译文件,执行被分配的编译任务。
119.一种可选的实施方式中,所述装置还包括发送模块:
120.将执行所述编译任务的过程中生成的可执行文件发送至所述主执行终端,所述可执行文件用于所述主执行终端执行需要使用所述可执行文件的编译任务。
121.本公开实施例提供的编译装置,获取针对目标源文件的编译任务列表;所述编译任务列表指示有多个编译任务;针对每个所述编译任务,基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端;在所述目标执行终端为主执行终端的情况下,执行所述编译任务,并将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端;在所述编译任务对应的目标执行终端为所述多个候选执行终端中除所述主执行终端的从属执行终端的情况下,将所述编译任务分配给所述目标执行终端,以使所述目标执行终端基于接收到的可编译文件执行被分配的编译任务。
122.本公开实施例通过主执行终端将执行编译任务的过程中生成的可编译文件发送至从属执行终端,以使从属执行终端根据接收到的可编译文件执行被分配的编译任务,不需要预先计算各个编译任务的输入及输出,能够大幅度缩短分布式编译的速度,并节约计
算资源。
123.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
124.对应于图2或图3中的编译方法,本公开实施例还提供了一种电子设备700,如图7所示,为本公开实施例提供的电子设备700结构示意图,包括:
125.处理器71、存储器72、和总线73;存储器72用于存储执行指令,包括内存721和外部存储器722;这里的内存721也称内存储器,用于暂时存放处理器71中的运算数据,以及与硬盘等外部存储器722交换的数据,处理器71通过内存721与外部存储器722进行数据交换,当所述电子设备700运行时,所述处理器71与所述存储器72之间通过总线73通信,使得所述处理器71执行以下指令:
126.获取针对目标源文件的编译任务列表;所述编译任务列表指示有多个编译任务;
127.针对每个所述编译任务,基于所述编译任务的任务类型,从多个候选执行终端中确定出所述编译任务对应的目标执行终端;
128.在所述目标执行终端为主执行终端的情况下,执行所述编译任务,并将执行所述编译任务的过程中生成的可编译文件发送至所述多个候选执行终端中除所述主执行终端之外的从属执行终端;
129.在所述编译任务对应的目标执行终端为所述多个候选执行终端中除所述主执行终端的从属执行终端的情况下,将所述编译任务分配给所述目标执行终端,以使所述目标执行终端基于接收到的可编译文件执行被分配的编译任务;
130.或者,接收所述主执行终端分配给所述从属执行终端的编译任务,以及,接收主执行终端在执行其他编译任务的过程中生成的可编译文件;
131.基于所述可编译文件,执行被分配的编译任务。
132.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的编译方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
133.本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的编译方法的步骤,具体可参见上述方法实施例,在此不再赘述。
134.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
135.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,
可以是电性,机械或其它的形式。
136.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
137.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
138.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
139.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1