CN115705193A - 分布式编译方法、装置、设备及介质 - Google Patents
分布式编译方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115705193A CN115705193A CN202110942543.5A CN202110942543A CN115705193A CN 115705193 A CN115705193 A CN 115705193A CN 202110942543 A CN202110942543 A CN 202110942543A CN 115705193 A CN115705193 A CN 115705193A
- Authority
- CN
- China
- Prior art keywords
- task
- compiled
- compiling
- type
- distributed
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本公开实施例涉及一种分布式编译方法、装置、设备及介质。其中,分布式编译方法包括:获取待编译任务;确定待编译任务的编译任务类型;在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群,第一编译请求用于使服务集群执行待编译任务。根据本公开实施例,可以将待编译任务派发到远端的服务集群上进行执行,大幅提升编译的并发能力,缩短编译时间,并且降低对本地内容的资源占用,提高本地内存的处理能力。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种分布式编译方法、装置、设备及介质。
背景技术
代码编译是将程序员编写的程序源码通过编译程序编译为机器可执行文件的过程。
一般情况下,Swift编程语言所编写的程序源码只能在本地计算机上编译。随着开发项目的工程规模的逐渐增大,大量的程序源码不但会导致编译时间越来越长,使得开发项目的过程中浪费了大量时间等待编译完成,还会占用本地计算机的资源,降低本地计算机的处理性能。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种分布式编译方法、装置、设备及介质。
第一方面,本公开提供了一种分布式编译方法,包括:
获取待编译任务;
确定待编译任务的编译任务类型;
在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群,第一编译请求用于使服务集群执行待编译任务。
第二方面,本公开提供了一种分布式编译装置,包括:
任务获取单元,配置为获取待编译任务;
类型确定单元,配置为确定待编译任务的编译任务类型;
第一发送单元,配置为在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群,第一编译请求用于使服务集群执行待编译任务。
第三方面,本公开提供了一种分布式编译设备,包括:
处理器;
存储器,用于存储可执行指令;
其中,处理器用于从存储器中读取可执行指令,并执行可执行指令以实现第一方面的分布式编译方法。
第四方面,本公开提供了一种计算机可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现第一方面的分布式编译方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例的分布式编译方法、装置、设备及介质,能够在获取到待编译任务之后,确定待编译任务的编译任务类型,并且在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群,使服务集群响应于第一编译请求执行待编译任务,由此,可以将待编译任务派发到远端的服务集群上进行执行,大幅提升编译的并发能力,缩短编译时间,并且降低对本地内容的资源占用,提高本地内存的处理能力。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为相关技术中一种编译处理的示意图;
图2为本公开实施例提供的一种分布式编译的架构图;
图3为本公开实施例提供的一种分布式编译方法的流程示意图;
图4为本公开实施例提供的一种分布式编译的示意图;
图5为本公开实施例提供的另一种分布式编译的示意图;
图6为本公开实施例提供的一种分布式编译装置的结构示意图;
图7为本公开实施例提供的一种分布式编译设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
代码编译是将程序源码通过编译程序编译为机器可执行文件的过程。一般情况下,Swift编程语言所编写的程序源码只能在本地计算机上编译。示例性的,图1为相关技术中一种编译处理的示意图,如图1所示,图中的编译驱动器110可以是Swift的编译驱动器(SwiftDrivier),Swift编程语言所编写的程序源码可以通过图中的Swift的编译驱动器(SwiftDrivier)触发待编译任务,然后在编译驱动器110所属的计算机的本地内存120上进行编译,待编译任务的数量可以为多个,每个待编译任务可以对应本地内存120中的一个线程。上述方式存在明显的局限性,也即编译效率和当前执行待编译任务的计算机性能直接相关,单一的计算机性能无法实现扩展,随着程序源码增多编译时间也会越来越长,还会占用本地计算机的资源,降低本地计算机的处理性能。
为了解决上述技术问题,本公开实施例提供了一种网络连接的处理方案,示例性的,图2示出了本公开实施例提供的一种分布式编译的架构图。如图2所示,该架构图中可以包括本地计算机210以及服务集群220。本地计算机210可以包括编译驱动器211和编译代理器212。编译代理器212可以通过网络协议如超文本传输安全协议(Hyper Text TransferProtocolover Secure Socket Layer,HTTPS)与服务集群220建立连接并进行信息交互。其中,本地计算机可以是移动电话、平板电脑、台式计算机、笔记本电脑、车载终端、可穿戴设备、一体机、智能家居设备等具有通信功能的设备。服务集群220可以是分布式的云服务器集群等具有存储及计算功能的设备集群。服务集群220可以包括多个服务节点221,服务节点221可以为一台计算机、一台服务器、或者一台计算机或一台服务器中的一个线程。
基于上述架构,编译驱动器211可以用于获取待编译任务,编译驱动器211在获取到待编译任务之后,可以将待编译任务发送至编译代理器212,编译代理器212可以确定待编译任务的编译任务类型,并且在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群220,服务集群220可以响应于第一编译请求执行待编译任务。由此,本公开实施例可以将本地的待编译任务派发到远端的服务集群上进行执行,大幅提升编译的并发能力,缩短编译时间,并且降低对本地内容的资源占用,提高本地内存的处理能力。
编译代理器212在确定待编译任务的编译任务类型之后,在编译任务类型属于第二类任务类型的情况下,可以将待编译任务对应的第二编译请求发送至本地计算机210的本地内存,本地内存可以响应第二编译请求执行待编译任务。本公开实施例在上述提升编译效率的基础上,可以兼顾任务的类型选择不同的计算机执行,保证了编译性能。
根据上述架构,下面结合图3至图5对本公开实施例提供的分布式编译方法进行说明。
在本公开实施例中,该分布式编译方法可以由电子设备执行,例如该电子设备可以为图2中所示的本地计算机110,其中,电子设备可以是移动电话、平板电脑、台式计算机、笔记本电脑、车载终端、可穿戴设备、一体机、智能家居设备等具有通信功能的设备。
图3示出了本公开实施例提供的一种分布式编译方法的流程示意图。
如图3所示,该分布式编译方法可以包括如下步骤:
S310、获取待编译任务。
其中,待编译任务可以是执行将程序源码通过编译程序编译为及其可执行文件的任务,数量不限可以为一个或多个。本公开实施例对待编译任务的编程语言不限,例如可以为Swift编程语言。
在本公开的一种实施例中,编译驱动器可以直接获取基于用户输入的程序源码所创建的待编译任务。
在本公开的另一种实施例中,获取待编译任务可以包括:接收原生编译驱动器发送的重定向请求;获取所述重定向请求携带的所述待编译任务。
其中,原生编译驱动器可以直接获取基于用户输入的程序源码所创建的待编译任务,并在获取到待编译任务之后,基于预先设置的重定向指令,将携带有待编译任务的重定向请求发送至与编译代理器通信连接的编译驱动器,该编译驱动器可以接收该重定向请求,并从中解析得到携带的待编译任务。
并且的,当待编译任务为多个,也即获取到待编译任务组时,可以对待编译任务组拆解为独立的多个待编译任务之后,执行后续处理。
S320、确定待编译任务的编译任务类型。
其中,编译任务类型可以是用户为待编译任务配置的其所属的任务类型。其中,编译任务类型可以包括静态类型、动态类型、综合类型和单模块类型等,具体不限。
在本公开实施例,编译驱动器获取待编译任务之后,可以将待编译任务派发至编译代理器中,由于待编译任务中携带有用户为其配置的编译任务类型的类型标识,编译代理器可以解析待编译任务中的类型标识,并根据该类型标识和预先存储的类型标识与编译任务类型的对应关系,确定待编译任务的编译任务类型。
S330、在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群。
本公开实施例中可以将编译任务划分为第一类任务类型和第二类任务类型两类。
第一类任务类型可以是不需要大量本地数据的任务类型,第一类任务类型可以根据各个编译任务类型对应的数据传输量、各个编译任务类型对应的数据处理量和各个编译任务类型对应的编译器类型中的至少一种确定。
示例性的,当一个编译任务类型满足数据传输量小于传输量阈值、数据处理量大于处理量阈值和对应的编译器并非只能安装在计算机本地中的至少一项,则可以确定该编译任务类型属于第一类任务类型,上述传输量阈值、处理量阈值可以根据实际情况设置。
第二类任务类型可以是需要合并模块(merge module)进行网络传输的任务,或者需要大量本地数据的任务类型,也即第二类任务类型可以为除第一类任务类型以外的其他类任务类型。
第一编译请求可以是发送给后台的服务集群,以使服务集群执行该待编译任务的请求。服务集群可以包括多个服务节点,每个服务节点可以为一台计算机、一台服务器、或者一台计算机或一台服务器中的一个线程。
在本公开实施例中,编译代理器在确定待编译任务的编译任务类型之后,如果确定编译任务类型属于第一类任务类型,则将待编译任务对应的第一编译请求发送至分布式的服务集群,以使服务集群响应于第一编译请求可以通过任意数量的计算机执行该待编译任务。
示例性的,图4示出了本公开实施例提供的一种分布式编译的示意图,如图4所示,编译驱动器410可以获取待编译任务或待编译任务组,针对一个待编译任务可以发送至编译代理器420,针对待编译任务组可以先拆解为独立的待编译任务之后,依次将每个待编译任务发送至编译代理器420;编译代理器420针对每个待编译任务,可以确定其编译任务类型,在确定待编译任务的编译任务类型属于第一类任务类型之后,可以发送第一编译请求至服务器集群430中,服务器集群430可以包括多个计算机431,通过多个计算机431执行待编译任务,如图中每个计算机431均可以执行多个待编译任务,进而解决了单一计算机的性能瓶颈,极大提升了编译性能。
本公开实施例的分布式编译方法,能够在获取到待编译任务之后,确定待编译任务的编译任务类型,并且在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群,使服务集群响应于第一编译请求执行待编译任务,由此,可以将待编译任务派发到远端的服务集群上进行执行,大幅提升编译的并发能力,缩短编译时间,并且降低对本地内容的资源占用,提高本地内存的处理能力。
在一些实施例中,在将待编译任务对应的第一编译请求发送至分布式的服务集群之前,分布式编译方法还可以包括:分析待编译任务的依赖文件;其中,将待编译任务对应的第一编译请求发送至分布式的服务集群,包括:将携带有依赖文件的第一编译请求发送至服务集群,第一编译请求用于使服务集群基于依赖文件执行待编译任务。
其中,依赖文件可以是执行待编译任务时所需要的数据文件,例如依赖文件可以包括图片、视频和文本等,具体不限。待编译任务的依赖文件可以包括多个。
在本公开实施例中,编译代理器在将待编译任务对应的第一编译请求发送至分布式的服务集群之前,还可以分析待编译任务所需的多个依赖文件,之后可以将多个依赖文件或多个依赖文件中与编译相关的目标依赖文件添加至第一编译请求中,并将第一编译请求发送至服务器集群,服务器集群接收到第一编译请求之后,可以基于其中包括的依赖文件执行待编译任务。
上述方案中,编译代理器可以主动分析待编译任务所需的依赖文件,可以将依赖文件或其中仅仅与编译相关的依赖文件传输至服务器集群,相较于相关技术中由服务器集群获取依赖文件,提升了服务器集群的编译效率。
在另一些实施例中,在将待编译任务对应的第一编译请求发送至分布式的服务集群之后,分布式编译方法还可以包括:接收依赖文件获取请求,依赖文件获取请求由服务集群在未查询到待编译任务的依赖文件的情况下发送;分析待编译任务的依赖文件;向服务集群发送依赖文件,依赖文件用于使服务集群执行待编译任务。
在本公开实施例中,编译代理器在将待编译任务对应的第一编译请求发送至分布式的服务集群之后,当服务器集群在未查询到待编译任务的依赖文件的情况下可以发送依赖文件获取请求给编译代理器,编译代理器可以接收服务器集群发送的依赖文件获取请求,并响应与该依赖文件获取请求,分析待编译任务所需的多个依赖文件,之后可以将多个依赖文件或多个依赖文件中与编译相关的目标依赖文件发送至服务器集群,服务器集群可以基于接收到的多个依赖文件或目标依赖文件执行待编译任务。
上述方案中,当执行待编译任务的服务器在本地未查询到待编译任务的依赖文件或执行待编译任务的服务节点在其所属的服务器本地未查询到待编译任务的依赖文件时,可以发送依赖文件获取请求给编译代理器,编译代理器可以在接收到服务器集群的请求时被动发送待编译任务的依赖文件给服务器集群,以使服务集群可以快速执行待编译任务。
在又一些实施例中,在确定待编译任务的编译任务类型之后,分布式编译方法还可以包括:在编译任务类型属于第二类任务类型的情况下,将待编译任务对应的第二编译请求发送至本地内存,第二编译请求用于使本地内存执行待编译任务。其中,第二编译请求用于使本地内存分析待编译任务的依赖文件并且基于依赖文件执行待编译任务。
其中,第二类任务类型可以是需要merge module进行网络传输的任务,或者需要大量本地数据的任务类型,也即第二类任务类型可以为除第一类任务类型以外的其他类任务类型。
在本公开实施例中,编译代理器在确定待编译任务的编译任务类型之后,如果确定编译任务类型属于第二类任务类型,则将待编译任务对应的第二编译请求发送至本地内存,本地内存可以响应于第二编译请求可以分析待编译任务的依赖文件并且基于依赖文件执行待编译任务。
上述方案中,编译代理器可以根据待编译任务的编译任务类型选择不同的计算机执行任务,对于网络传输数据量较大并且需要本地数据的第二任务类型可以在本地执行,对于其他的一般任务可以派发到远程的服务器集群执行,不仅提升了编译效率,缩短了编译时间,并且可以兼顾任务的类型选择不同的计算机执行,保证了编译性能。
在再一些实施例中,分布式编译方法还可以包括:接收待编译任务对应的编译结果;将编译结果存储至待编译任务对应的预设存储地址。
编译代理器可以接收本地或服务集群在执行完待编译任务之后发送的编译结果,并将编译结果存储在对应的预设存储地址。
示例性的,图5示出了本公开实施例提供的另一种分布式编译的示意图,如图5所示,分布式编译过程可以包括:编译驱动器510可以创建待编译任务或者获取原生编译驱动器发送的待编译任务或待编译任务组,针对一个待编译任务可以发送至编译代理器520,针对待编译任务组可以先拆解为独立的待编译任务之后,依次将每个待编译任务发送至编译代理器520,进行后续处理;编译代理器520针对每个待编译任务,可以确定待编译任务的编译任务类型,如果编译任务类型属于第一类任务类型,则发送第一编译请求给服务器集群530,服务器集群530执行待编译任务;如果编译任务类型属于第二类任务类型,则发送第二编译请求给本地540,本地540执行待编译任务;服务器集群530和/或本地540可以输出编译结果给编译代理器520,编译代理器520可以存储该编译结果至本地预设位置。
本公开实施例提供的分布式编译方案,通过编译驱动器可以将获取到的待编译任务组分解成独立的待编译任务并发送至编译代理器,编译代理器可以根据待编译任务的类型将待编译任务派发至服务集群或本地内存以执行编译任务,之后可以将编译结果下载回本地,可以幅提升编辑的并发能力,缩短编译时间,并且降低对本地内容的资源占用,提高本地内存的处理能力。
本公开实施例还提供了一种分布式编译装置,下面结合图6进行说明。
在本公开实施例中,该分布式编译装置可以为电子设备,例如该电子设备可以为图2中所示的本地计算机110。其中,电子设备可以是移动电话、平板电脑、台式计算机、笔记本电脑、车载终端、可穿戴设备、一体机、智能家居设备等具有通信功能的设备。
图6示出了本公开实施例提供的一种分布式编译装置的结构示意图。
如图6所示,该种分布式编译装置600,可以包括任务获取单元610、类型确定单元620和第一发送单元630。
任务获取单元610,配置为获取待编译任务;
类型确定单元620,配置为确定待编译任务的编译任务类型;
第一发送单元630,配置为在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群,第一编译请求用于使服务集群执行待编译任务。
在本公开实施例中,能够在获取到待编译任务之后,确定待编译任务的编译任务类型,并且在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群,使服务集群响应于第一编译请求执行待编译任务,由此,可以将待编译任务派发到远端的服务集群上进行执行,大幅提升编译的并发能力,缩短编译时间,并且降低对本地内容的资源占用,提高本地内存的处理能力。
在本公开一些实施例中,该任务获取单元610可以配置为:
接收原生编译驱动器发送的重定向请求;
获取重定向请求携带的待编译任务。
在本公开一些实施例中,该分布式编译装置600还可以包括第一文件单元。
该第一文件单元可以配置为在将待编译任务对应的第一编译请求发送至分布式的服务集群之前,分析待编译任务的依赖文件;
其中,第一发送单元630可以配置为:
将携带有依赖文件的第一编译请求发送至服务集群,第一编译请求用于使服务集群基于依赖文件执行待编译任务。
在本公开一些实施例中,该分布式编译装置600还可以包括第二文件单元。
该第二文件单元可以配置为在将待编译任务对应的第一编译请求发送至分布式的服务集群之后,接收依赖文件获取请求,依赖文件获取请求由服务集群在未查询到待编译任务的依赖文件的情况下发送;
分析待编译任务的依赖文件;
向服务集群发送依赖文件,依赖文件用于使服务集群执行待编译任务。
在本公开一些实施例中,第一类任务类型根据各个编译任务类型对应的数据传输量、各个编译任务类型对应的数据处理量和各个编译任务类型对应的编译器类型中的至少一种确定。
在本公开一些实施例中,该分布式编译装置600还可以包括第二发送单元。
该第二发送单元可以配置为在确定待编译任务的编译任务类型之后,在编译任务类型属于第二类任务类型的情况下,将待编译任务对应的第二编译请求发送至本地内存,第二编译请求用于使本地内存执行待编译任务。
在本公开一些实施例中,第二类任务类型为除第一类任务类型以外的其他类任务类型。
在本公开一些实施例中,第二编译请求用于使本地内存分析待编译任务的依赖文件并且基于依赖文件执行待编译任务。
在本公开一些实施例中,该分布式编译装置600还可以包括编译结果单元。
该编译结果单元可以配置为接收待编译任务对应的编译结果;
将编译结果存储至待编译任务对应的预设存储地址。
需要说明的是,图6所示的分布式编译装置600可以执行图3至图5所示的方法实施例中的各个步骤,并且实现图3至图5所示的方法实施例中的各个过程和效果,在此不做赘述。
本公开实施例还提供了一种分布式编译设备,该分布式编译设备可以包括处理器和存储器,存储器可以用于存储可执行指令。其中,处理器可以用于从存储器中读取可执行指令,并执行可执行指令以实现上述实施例中的分布式编译方法。
图7示出了本公开实施例提供的一种分布式编译设备的结构示意图。下面具体参考图7,其示出了适于用来实现本公开实施例中的分布式编译设备700的结构示意图。
在本公开一些实施例中,分布式编译设备700可以为图2中所示的本地计算机110,并执行上述的分布式编译方法。
需要说明的是,图7示出的分布式编译设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,该分布式编译设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有分布式编译设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许分布式编译设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的分布式编译设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
本公开实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现上述实施例中的分布式编译方法。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品可以包括计算机程序,当计算机程序被处理器执行时,使得处理器实现上述实施例中的分布式编译方法。
例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM 702被安装。在该计算机程序被处理装置701执行时,执行本公开实施例的分布式编译方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述分布式编译设备中所包含的;也可以是单独存在,而未装配入该分布式编译设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该分布式编译设备执行时,使得该分布式编译设备执行:
获取待编译任务;
确定待编译任务的编译任务类型;
在编译任务类型属于第一类任务类型的情况下,将待编译任务对应的第一编译请求发送至分布式的服务集群,第一编译请求用于使服务集群执行待编译任务。
在本公开实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (12)
1.一种分布式编译方法,其特征在于,包括:
获取待编译任务;
确定所述待编译任务的编译任务类型;
在所述编译任务类型属于第一类任务类型的情况下,将所述待编译任务对应的第一编译请求发送至分布式的服务集群,所述第一编译请求用于使所述服务集群执行所述待编译任务。
2.根据权利要求1所述的方法,其特征在于,所述获取待编译任务,包括:
接收原生编译驱动器发送的重定向请求;
获取所述重定向请求携带的所述待编译任务。
3.根据权利要求1所述的方法,其特征在于,在所述将所述待编译任务对应的第一编译请求发送至分布式的服务集群之前,所述方法还包括:
分析所述待编译任务的依赖文件;
其中,所述将所述待编译任务对应的第一编译请求发送至分布式的服务集群,包括:
将携带有所述依赖文件的所述第一编译请求发送至所述服务集群,所述第一编译请求用于使所述服务集群基于所述依赖文件执行所述待编译任务。
4.根据权利要求1所述的方法,其特征在于,在所述将所述待编译任务对应的第一编译请求发送至分布式的服务集群之后,所述方法包括:
接收依赖文件获取请求,所述依赖文件获取请求由所述服务集群在未查询到所述待编译任务的依赖文件的情况下发送;
分析所述待编译任务的所述依赖文件;
向所述服务集群发送所述依赖文件,所述依赖文件用于使所述服务集群执行所述待编译任务。
5.根据权利要求1所述的方法,其特征在于,所述第一类任务类型根据各个所述编译任务类型对应的数据传输量、各个所述编译任务类型对应的数据处理量和各个所述编译任务类型对应的编译器类型中的至少一种确定。
6.根据权利要求1或5所述的方法,其特征在于,在所述确定所述待编译任务的编译任务类型之后,所述方法还包括:
在所述编译任务类型属于第二类任务类型的情况下,将所述待编译任务对应的第二编译请求发送至本地内存,所述第二编译请求用于使所述本地内存执行所述待编译任务。
7.根据权利要求6所述的方法,其特征在于,所述第二类任务类型为除所述第一类任务类型以外的其他类任务类型。
8.根据权利要求6所述的方法,其特征在于,所述第二编译请求用于使所述本地内存分析所述待编译任务的依赖文件并且基于所述依赖文件执行所述待编译任务。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述待编译任务对应的编译结果;
将所述编译结果存储至所述待编译任务对应的预设存储地址。
10.一种分布式编译装置,其特征在于,包括:
任务获取单元,配置为获取待编译任务;
类型确定单元,配置为确定所述待编译任务的编译任务类型;
第一发送单元,配置为在所述编译任务类型属于第一类任务类型的情况下,将所述待编译任务对应的第一编译请求发送至分布式的服务集群,所述第一编译请求用于使所述服务集群执行所述待编译任务。
11.一种分布式编译设备,其特征在于,包括:
处理器;
存储器,用于存储可执行指令;
其中,所述处理器用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现上述权利要求1-9中任一项所述的分布式编译方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现上述权利要求1-9中任一项所述的分布式编译方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110942543.5A CN115705193A (zh) | 2021-08-17 | 2021-08-17 | 分布式编译方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110942543.5A CN115705193A (zh) | 2021-08-17 | 2021-08-17 | 分布式编译方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115705193A true CN115705193A (zh) | 2023-02-17 |
Family
ID=85180518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110942543.5A Pending CN115705193A (zh) | 2021-08-17 | 2021-08-17 | 分布式编译方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115705193A (zh) |
-
2021
- 2021-08-17 CN CN202110942543.5A patent/CN115705193A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111581563B (zh) | 页面响应方法、装置、存储介质和电子设备 | |
CN111338623B (zh) | 一种开发用户界面的方法、装置、介质和电子设备 | |
CN111679990B (zh) | 测试数据生成方法、装置、可读介质及电子设备 | |
CN110851139B (zh) | 用于检查代码的方法、装置和电子设备 | |
CN110391938B (zh) | 用于部署服务的方法和装置 | |
CN111581555B (zh) | 一种文档加载方法、装置、设备及存储介质 | |
CN111324342A (zh) | 一种生成接口层代码的方法、装置、介质和电子设备 | |
CN112395253B (zh) | 索引文件生成方法、终端设备、电子设备及介质 | |
CN111309304B (zh) | 一种生成idl文件的方法、装置、介质和电子设备 | |
CN111338666A (zh) | 一种实现应用程序升级的方法、装置、介质和电子设备 | |
CN110851211A (zh) | 用于显示应用信息的方法、装置、电子设备和介质 | |
CN111324470B (zh) | 用于生成信息的方法及装置 | |
CN110489219B (zh) | 一种调度功能对象的方法、装置、介质和电子设备 | |
CN112416303A (zh) | 软件开发工具包热修复方法、装置及电子设备 | |
CN109669720B (zh) | 基于Promise的链式异步请求处理方法、装置及电子设备 | |
CN111752644A (zh) | 接口模拟方法、装置、设备及存储介质 | |
CN113391860A (zh) | 服务请求处理方法、装置、电子设备及计算机存储介质 | |
CN111240801A (zh) | 生成堆内存快照文件的方法、装置、介质和电子设备 | |
CN116302271A (zh) | 一种页面展示方法、装置及电子设备 | |
CN110704050A (zh) | 模块初始化方法、装置、电子设备及计算机可读存储介质 | |
CN111124523A (zh) | 用于初始化应用的方法和装置 | |
CN113704079B (zh) | 基于Protobuf的接口测试方法和装置 | |
CN114051024A (zh) | 文件后台续传方法、装置、存储介质及电子设备 | |
CN115705193A (zh) | 分布式编译方法、装置、设备及介质 | |
CN111309323A (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 |