分布式编译方法、装置、计算机程序产品、设备及介质与流程
- 国知局
- 2024-08-05 12:11:45
本发明涉及软件,更具体地说,涉及分布式编译方法、装置、计算机程序产品、电子设备及计算机可读存储介质。
背景技术:
1、在对软件进行编译的过程中,可以借助多个编译设备对软件进行编译,比如可以将编译任务分发到多个计算机上以并行执行来加速整体编译过程。然而,多个编译设备可能对重复的编译任务进行处理,导致编译效率降低。
2、综上所述,如何提高编译效率是目前本领域技术人员亟待解决的问题。
技术实现思路
1、本发明的目的是提供一种分布式编译方法,其能在一定程度上解决如何提高编译效率的技术问题。本发明还提供了一种分布式编译装置、计算机程序产品、电子设备及计算机可读存储介质。
2、为了实现上述目的,本发明提供如下技术方案:
3、第一方面,提供一种分布式编译方法,应用于编译设备,包括:
4、获取编译任务;
5、生成所述编译任务的描述信息;
6、确定共享服务器挂载在所述编译设备的共享目录;
7、基于所述描述信息检测共享目录中是否存在所述编译任务对应的编译结果;
8、若基于所述描述信息检测出所述共享目录中存在所述编译结果,则从所述共享目录中读取所述编译结果进行处理;
9、其中,目标数量个所述编译设备均挂载所述共享目录,所述目标数量大于等于2。
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、第二方面,提供一种分布式编译装置,包括共享服务器、与所述共享服务器连接的目标数量个编译设备,所述目标数量大于等于2,且所述目标数量个所述编译设备均挂载所述共享服务器的共享目录;
41、所述编译设备用于获取编译任务;生成所述编译任务的描述信息;基于所述描述信息检测共享目录中是否存在所述编译任务对应的编译结果;若基于所述描述信息检测出所述共享目录中存在所述编译结果,则从所述共享目录中读取所述编译结果进行处理。
42、另一方面,所述编译设备配置有分布式编译器和编译器缓存。
43、另一方面,所述共享服务器用于:
44、确定共享文件;
45、获取所述编译设备的编译器缓存信息;
46、在所述共享文件中添加所述编译器缓存信息;
47、在所述共享文件中添加所述编译设备的读写权限信息,所述读写权限信息包括所述编译设备对所述共享目录的读写权限。
48、第三方面,提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上任一所述分布式编译方法的步骤。
49、第四方面,提供一种电子设备,包括:
50、存储器,用于存储计算机程序;
51、处理器,用于执行所述计算机程序时实现如上任一所述分布式编译方法的步骤。
52、第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述分布式编译方法的步骤。
53、本发明提供的一种分布式编译方法,应用于编译设备,获取编译任务;生成编译任务的描述信息;确定共享服务器挂载在编译设备的共享目录;基于描述信息检测共享目录中是否存在编译任务对应的编译结果;若基于描述信息检测出共享目录中存在编译结果,则从共享目录中读取编译结果进行处理;其中,目标数量个编译设备均挂载共享目录,目标数量大于等于2。本发明的有益效果是:各个编译设备均挂载共享服务器的共享目录,且各个编译设备在处理编译任务时,根据编译任务的描述信息对共享目录进行检索,若共享目录中存在编译任务对应的编译结果,则从共享目录中读取编译结果进行处理,如此一来,只要共享目录中存在编译结果,各个编译设备均可以直接获取编译结果进行处理,而无需在对编译任务进行编译得到编译结果,降低了编译任务的重复编译过程,提高了编译效率。本发明提供的一种编译装置、计算机程序产品、电子设备及计算机可读存储介质也解决了相应技术问题。
技术特征:1.一种分布式编译方法,其特征在于,应用于编译设备,包括:
2.根据权利要求1所述的分布式编译方法,其特征在于,基于所述描述信息检测共享目录中是否存在所述编译任务对应的编译结果之后,还包括:
3.根据权利要求2所述的分布式编译方法,其特征在于,将所述描述信息和所述编译结果存入所述共享目录,包括:
4.根据权利要求3所述的分布式编译方法,其特征在于,对所述共享目录进行加锁,包括:
5.根据权利要求1所述的分布式编译方法,其特征在于,确定共享服务器挂载在所述编译设备的共享目录,包括:
6.根据权利要求5所述的分布式编译方法,其特征在于,获取编译任务之前,还包括:
7.根据权利要求1所述的分布式编译方法,其特征在于,获取编译任务,包括:
8.根据权利要求1所述的分布式编译方法,其特征在于,生成所述编译任务的描述信息,包括:
9.根据权利要求8所述的分布式编译方法,其特征在于,基于所述源文件信息和所述编译参数生成所述编译任务的缓存键,包括:
10.一种分布式编译装置,其特征在于,包括共享服务器、与所述共享服务器连接的目标数量个编译设备,所述目标数量大于等于2,且所述目标数量个所述编译设备均挂载所述共享服务器的共享目录;
11.根据权利要求10所述的分布式编译装置,其特征在于,所述编译设备配置有分布式编译器和编译器缓存。
12.根据权利要求11所述的分布式编译装置,其特征在于,所述共享服务器用于:
13.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至9任一项所述分布式编译方法的步骤。
14.一种电子设备,其特征在于,包括:
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述分布式编译方法的步骤。
技术总结本发明公开了分布式编译方法、装置、计算机程序产品、设备及介质,涉及软件技术领域,应用于编译设备,获取编译任务;生成编译任务的描述信息;确定共享服务器挂载在编译设备的共享目录;基于描述信息检测共享目录中是否存在编译任务对应的编译结果;若基于描述信息检测出共享目录中存在编译结果,则从共享目录中读取编译结果进行处理;其中,目标数量个编译设备均挂载共享目录,目标数量大于等于2。本发明中,编译设备根据编译任务的描述信息对共享目录进行检索,如此一来,只要共享目录中存在编译结果,各个编译设备均可以直接获取编译结果进行处理,而无需在对编译任务进行编译得到编译结果,降低了编译任务的重复编译过程,提高了编译效率。技术研发人员:赵广峰,李柏宏,吴韶华受保护的技术使用者:浪潮电子信息产业股份有限公司技术研发日:技术公布日:2024/8/1本文地址:https://www.jishuxx.com/zhuanli/20240802/261469.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。