技术新讯 > 计算推算,计数设备的制造及其应用技术 > 用于生成可执行文件的方法和装置与流程  >  正文

用于生成可执行文件的方法和装置与流程

  • 国知局
  • 2024-08-05 11:49:43

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

背景技术:

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

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

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

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

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

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

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

28、在本技术的另一个实施例中,还提供了一种设备集群,包括多台物理设备,其中,所述多台物理设备中的任意一台物理设备被配置为用于执行如前述实施例所述的方法的本地物理设备。

29、在本技术的另一个实施例中,还提供了一种非瞬时计算机可读存储介质,该非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得处理器执行如前述实施例所述的方法。

30、在本技术的另一个实施例中,还提供了一种计算机程序产品,包括计算机可执行指令,所述计算机可执行指令在被处理器执行时实现如前述实施例所述的方法。

31、基于本技术的上述实施例,可以在本地物理设备部署目标容器,并且,还可以在除本地物理设备之外的至少两台选定物理设备为目标容器部署容器镜像。其中,目标容器用于生成可执行文件,可执行文件的文件生成过程包括对源代码文件的编译、以及在编译之后对编译结果的链接,并且,容器镜像用于利用至少两台选定物理设备提供的多设备硬件资源,替代目标容器在本地物理设备占用的单设备硬件资源实现对源代码文件的编译。从而,在可执行文件的文件生成过程中:对源代码文件的编译可以通过调用部署在至少两台选定物理设备的容器镜像而在一致的编译环境下基于多设备硬件资源并发地执行,以在确保编译环境的一致性前提下利用多设备硬件资源来满足编译的硬件资源需求,而不再受限于本地物理设备所能够提供的单设备硬件资源,因而有助于在编译的硬件资源需求超出单设备硬件资源时减少对源代码文件的编译耗时,进而,可以在减少编译耗时的基础上减少生成可执行文件的耗时。

本文地址:https://www.jishuxx.com/zhuanli/20240802/259631.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。