System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于生成可执行文件的方法和装置制造方法及图纸_技高网

用于生成可执行文件的方法和装置制造方法及图纸

技术编号:42242551 阅读:18 留言:0更新日期:2024-08-02 13:54
本申请涉及用于生成可执行文件的方法和装置。基于本申请,可以在本地物理设备部署目标容器、以及在至少两台选定物理设备为目标容器部署容器镜像。在可执行文件的文件生成过程中,对源代码文件的编译可以通过调用部署在至少两台选定物理设备的容器镜像在一致的编译环境下基于多设备硬件资源并发地执行,以在确保编译环境的一致性前提下利用多设备硬件资源来满足编译的硬件资源需求,从而可以在编译的硬件资源需求超出单设备硬件资源时减少对源代码文件的编译耗时,进而,可以在减少编译耗时的基础上减少生成可执行文件的耗时。

【技术实现步骤摘要】

本申请涉及资源调度领域,特别涉及一种用于生成可执行文件的方法、一种用于生成可执行文件的装置、一种设备集群、一种非瞬时计算机可读存储介质、以及一种计算机程序产品。


技术介绍

1、可执行文件是计算程序的一种形式,并且,可执行文件中包括机器语言的指令,以使得计算机硬件可以通过执行机器语言的指令实现相应的功能。一般情况下,可执行文件可以由单台物理设备基于源代码文件生成,源代码文件可以由例如c语言或c++语言等高级语言编写得到的,并且,在生成可执行文件的过程中,需要对源代码文件进行编译(compilation),以将源代码文件的高级语言转换为机器语言。

2、为了确保对源代码文件中的所有文件的编译环境的一致性,生成可执行文件的过程由单台物理设备承担。但是,单台物理设备的硬件资源是有限的,因此,若源代码文件的文件量过大,导致编译的硬件资源需求超出单台物理设备所能够提供的单设备硬件资源,则,对源代码文件的编译耗时就会较长,相应地,生成可执行文件的耗时较长。例如,对于文件量上万的源代码文件,具有128个cpu核的单台物理设备的编译耗时超过3小时,在此基础上,基于该源代码文件生成可执行文件的耗时会更长。

3、可见,在编译的硬件资源需求超出单设备硬件资源时,如何减少生成可执行文件的耗时,成为现有技术中有待解决的技术问题。


技术实现思路

1、本申请的实施例提供一种用于生成可执行文件的方法、一种用于生成可执行文件的装置、一种设备集群、一种非瞬时计算机可读存储介质、以及一种计算机程序产品,有助于在编译的硬件资源需求超出单设备硬件资源时,减少生成可执行文件的耗时。

2、在本申请的一个实施例中,提供了一种用于生成可执行文件的方法,包括:

3、获取软件开发配置文件;其中,所述软件开发配置文件包括容器配置信息和资源配置信息,所述容器配置信息用于指示部署在本地物理设备的目标容器的容器配置,并且,所述资源配置信息用于指示由多台物理设备中被选定的至少两台选定物理设备提供的多设备硬件资源;

4、在所述资源配置信息指示的至少两台所述选定物理设备,利用所述容器配置信息为所述目标容器部署至少两个容器镜像;

5、调用至少两个所述容器镜像,使源代码文件的至少两个文件分组基于所述多设备硬件资源被并发地执行编译;

6、响应于至少两个所述容器镜像并发执行的编译全部完成,调用所述目标容器将对所述至少两个文件分组并发编译得到的至少两个编译文件链接为可执行文件。

7、在一些示例中,可选地,所述资源配置信息包括所述选定物理设备的设备数量、以及每台所述选定物理设备提供的单设备硬件资源,所述多设备硬件资源由所述设备数量和所述单设备硬件资源确定,并且,任意一个所述容器镜像在被调用时使用的硬件资源,由所在的所述选定物理设备的所述单设备硬件资源确定。

8、在一些示例中,可选地,所述目标容器和至少两个所述容器镜像中均封装有至少两种可用编译器,所述软件开发配置文件还包括编译模式信息,所述编译模式信息用于指示所述至少两种可用编译器中的一种选定编译器,并且,对至少两个所述容器镜像的调用均依据所述编译模式信息,使至少两个所述容器镜像在被调用时启用相同的所述选定编译器。

9、在一些示例中,可选地,所述方法还包括:基于对至少两个所述容器镜像并发执行编译的进度的监听结果,确定至少两个所述容器镜像并发执行的编译是否全部完成。

10、在一些示例中,可选地,所述软件开发配置文件还包括文件路径信息,所述文件路径信息用于指示所述源代码文件所在的目标文件路径,并且,对所述至少两个文件分组并发编译得到的所述至少两个编译文件均生成在所述目标文件路径。

11、在一些示例中,可选地,所述调用至少两个所述容器镜像,包括:向至少两台所述选定物理设备并发地分配至少两个分组编译任务;其中,以任意一台所述选定物理设备为任务分配对象的所述分组编译任务中包括:所述至少两个文件分组中被确定为由部署在所述任务分配对象的所述容器镜像执行编译的指定文件分组的分组信息。

12、在一些示例中,可选地,所述资源配置信息包括所述选定物理设备的设备数量、以及每台所述选定物理设备提供的单设备硬件资源,所述多设备硬件资源由所述设备数量和所述单设备硬件资源确定,并且,以任意一台所述选定物理设备为任务分配对象的所述分组编译任务中包括所述任务分配对象的所述单设备硬件资源,以指示部署在所述任务分配对象的所述容器镜像在被调用时使用的硬件资源。

13、在一些示例中,可选地,所述目标容器和至少两个所述容器镜像中均封装有至少两种可用编译器,所述软件开发配置文件还包括编译模式信息,所述编译模式信息用于指示所述至少两种可用编译器中的一种选定编译器,并且,以任意一台所述选定物理设备为任务分配对象的所述分组编译任务中包括所述编译模式信息,以指示部署在所述任务分配对象的所述容器镜像在被调用时启用所述选定编译器。

14、在一些示例中,可选地,至少两台所述选定物理设备均运行代理客户端;所述向至少两台所述选定物理设备并发地分配至少两个分组编译任务,包括:将至少两个所述分组编译任务并发地发送到至少两台所述选定物理设备的所述代理客户端;其中,所述代理客户端被配置为:基于接收到的所述分组编译任务,执行对所在的一台所述选定物理设备部署的所述容器镜像的调用。

15、在一些示例中,可选地,所述代理客户端还被配置为:响应于调用的所述容器镜像完成编译,产生编译完成通知;所述方法还包括:基于对所述编译完成通知的监听结果,确定至少两个所述容器镜像并发执行的编译是否全部完成;其中,当成功监听到至少两台所述选定物理设备的所述代理客户端全部产生了所述编译完成通知时,确定至少两个所述容器镜像并发执行的编译全部完成。

16、在本申请的另一个实施例中,提供了一种用于生成可执行文件的装置,包括:

17、配置获取模块,用于获取软件开发配置文件;其中,所述软件开发配置文件包括容器配置信息和资源配置信息,所述容器配置信息用于指示部署在本地物理设备的目标容器的容器配置,并且,所述资源配置信息用于指示由多台物理设备中被选定的至少两台选定物理设备提供的多设备硬件资源;

18、镜像部署模块,用于基在所述资源配置信息指示的至少两台所述选定物理设备,利用所述容器配置信息为所述目标容器部署至少两个容器镜像;

19、镜像调用模块,用于调用至少两个所述容器镜像,使源代码文件的至少两个文件分组基于所述多设备硬件资源被并发地执行编译;

20、本地调用模块,用于响应于至少两个所述容器镜像并发执行的编译全部完成,调用所述目标容器将对所述至少两个文件分组并发编译得到的至少两个编译文件链接为可执行文件。

21、在一些示例中,可选地,所述资源配置信息包括所述选定物理设备的设备数量、以及每台所述选定物理设备提供的单设备硬件资源,所述多设备硬件资源由所述设备数量和所述单设备硬件资源确定,并且,任意一个所本文档来自技高网...

【技术保护点】

1.一种用于生成可执行文件的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,

3.根据权利要求1所述的方法,其特征在于,

4.根据权利要求3所述的方法,其特征在于,

5.根据权利要求3所述的方法,其特征在于,

6.根据权利要求5所述的方法,其特征在于,

7.一种用于生成可执行文件的装置,其特征在于,包括:

8.一种设备集群,其特征在于,包括多台物理设备,其中,所述多台物理设备中的任意一台物理设备被配置为用于执行如权利要求1至6中任一项所述的方法的本地物理设备。

9.一种非瞬时计算机可读存储介质,其特征在于,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如权利要求1至6中任一项所述的方法。

10.一种计算机程序产品,其特征在于,包括计算机可执行指令,所述计算机可执行指令在被处理器执行时实现如权利要求1至6中任一项所述的方法。

【技术特征摘要】

1.一种用于生成可执行文件的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,

3.根据权利要求1所述的方法,其特征在于,

4.根据权利要求3所述的方法,其特征在于,

5.根据权利要求3所述的方法,其特征在于,

6.根据权利要求5所述的方法,其特征在于,

7.一种用于生成可执行文件的装置,其特征在于,包括:

8.一种设备集群,其特征在于,包括多...

【专利技术属性】
技术研发人员:请求不公布姓名请求不公布姓名
申请(专利权)人:北京壁仞科技开发有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1