【技术实现步骤摘要】
一种分布式编译方法、系统、电子设备及存储介质
[0001]本申请涉及计算机应用
,具体而言,涉及一种分布式编译方法、系统、电子设备及存储介质。
技术介绍
[0002]分布式编译即通过网络将需要进行编译的源码发送到不同的机器上分别执行编译,编译完成后到本地进行链接,从而将工程转化为集群任务来处理,解决单机编译性能受限、大工程编译速度慢的问题,达到提高开发效率的目的。
[0003]现有的分布式编译方法,如通过使用开源软件distcc来实现,并使用dmucs作为distcc的负载均衡工具,该方案在编译时,将从指定文件中读取机器ip,并通过dmucs来获取各机器负载,并根据机器负载对机器的ip次序进行调整,在编译时将编译命令、待编译文件及其依赖库和头文件发送至ip次序靠前的机器进行编译,编译完成后在本地进行链接,该方法无法对编译机器进行内存和性能检测,容易出现内存溢出的情况且编译性能较差的机器将严重拖慢整体编译进度的问题。
技术实现思路
[0004]本申请实施例的目的在于提供一种分布式编译方法、系统、电 ...
【技术保护点】
【技术特征摘要】
1.一种分布式编译方法,其特征在于,所述方法包括:客户机,对接收到的编译命令进行是否分布式编译判断;若是,则将待编译任务的编译信息发送至调度器,并从所述调度器获取编译机,以将所述待编译任务发送至所述编译机进行编译;接收所述编译机返回的编译结果;调度器,根据接收到的客户机发起的编译请求,从编译机信息中选取当前最佳编译机返回给客户机,以使所述当前最佳编译机执行所述待编译任务。2.根据权利要求1所述的分布式编译方法,其特征在于,在所述对接收到的编译命令进行是否分布式编译判断的步骤之前,所述方法还包括:记录各个编译任务执行模块的模块名和所述编译任务执行模块执行编译任务生成的库名;基于所述模块名和所述库名生成模块依赖列表;遍历所述模块依赖列表并计算CPU空闲率,以获得并行编译模块数,以利用所述并行编译模块数执行编译任务。3.根据权利要求1所述的分布式编译方法,其特征在于,所述方法还包括:所述客户机,对编译任务执行过程中生成的日志进行重定向。4.根据权利要求1所述的分布式编译方法,其特征在于,所述对接收到的编译命令进行是否分布式编译判断,包括:判断所述编译命令中是否含有不可分布式编译的选项、是否为轻量级任务、是否为回退任务、本地是否能够编译。5.根据权利要求1所述的分布式编译方法,其特征在于,在所述从编译机信息中选取当前最佳编译机返回给客户机的步骤之前,所述方法还包括:调度器接收远端守护进程定时发送的核数、内存、负载和可用编译机...
【专利技术属性】
技术研发人员:陈旭,刘聪,时幸伟,胡亚运,
申请(专利权)人:北京天融信科技有限公司北京天融信软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。