代码编译方法、装置、电子设备及存储介质制造方法及图纸

技术编号:39328412 阅读:6 留言:0更新日期:2023-11-12 16:05
本申请提供了一种代码编译方法、装置、电子设备及存储介质;方法包括:接收到用于指示对待编译代码进行编译的代码编译请求;响应于代码编译请求,确定待编译代码的编译类型,并确定与编译类型对应的目标编译集群,其中,目标编译集群包括至少两个代码编译机,不同的编译类型对应不同的目标编译集群;获取目标编译集群中各代码编译机的运行信息,并基于运行信息,从至少两个代码编译机中,确定目标代码编译机;生成对应待编译代码的编译任务,并将编译任务发送至目标代码编译机,以使目标代码编译机对待编译代码进行编译。通过本申请,能够有效提高编译代码的效率和速度。有效提高编译代码的效率和速度。有效提高编译代码的效率和速度。

【技术实现步骤摘要】
代码编译方法、装置、电子设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种代码编译方法、装置、电子设备及存储介质。

技术介绍

[0002]代码编译是将采用高级语言编写的源程序的代码翻译成计算机可识别的二进制语言的代码的过程,软件程序在开发的过程中,往往需要经过多轮修改、编译和调试。
[0003]在相关技术中,对于代码的编译,通常是通过单一的代码编译机对待编译代码进行编译,这样,导致代码的编译效率极低,代码的编译速度极低。

技术实现思路

[0004]本申请实施例提供一种代码编译方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够有效提高编译代码的效率和速度。
[0005]本申请实施例的技术方案是这样实现的:
[0006]本申请实施例提供一种代码编译方法,包括:
[0007]接收到用于指示对待编译代码进行编译的代码编译请求,其中,所述待编译代码为采用编译型语言所编写的代码;
[0008]响应于所述代码编译请求,确定所述待编译代码的编译类型,并确定与所述编译类型对应的目标编译集群,其中,所述目标编译集群包括至少两个代码编译机,不同的所述编译类型对应不同的所述目标编译集群;
[0009]获取所述目标编译集群中各所述代码编译机的运行信息,并基于所述运行信息,从所述至少两个代码编译机中,确定目标代码编译机;
[0010]生成对应所述待编译代码的编译任务,并将所述编译任务发送至所述目标代码编译机,以使所述目标代码编译机对所述待编译代码进行编译。
[0011]本申请实施例提供一种代码编译装置,包括:
[0012]接收模块,用于接收到用于指示对待编译代码进行编译的代码编译请求,其中,所述待编译代码为采用编译型语言所编写的代码;
[0013]响应模块,用于响应于所述代码编译请求,确定所述待编译代码的编译类型,并确定与所述编译类型对应的目标编译集群,其中,所述目标编译集群包括至少两个代码编译机,不同的所述编译类型对应不同的所述目标编译集群;
[0014]确定模块,用于获取所述目标编译集群中各所述代码编译机的运行信息,并基于所述运行信息,从所述至少两个代码编译机中,确定目标代码编译机;
[0015]发送模块,用于生成对应所述待编译代码的编译任务,并将所述编译任务发送至所述目标代码编译机,以使所述目标代码编译机对所述待编译代码进行编译。
[0016]在一些实施例中,所述运行信息包括用于指示是否存在编译任务的编译任务信息;上述确定模块,还用于基于所述目标编译集群中各所述代码编译机的编译任务信息,对
所述目标编译集群中的各所述代码编译机进行筛选,得到至少一个候选代码编译机,其中,所述候选代码编译机为不存在编译任务的代码编译机;从所述至少一个候选代码编译机中,选择一个代码编译机作为所述目标代码编译机。
[0017]在一些实施例中,所述运行信息还包括处理资源信息及存储资源信息;上述确定模块,还用于基于所述处理资源信息及存储资源信息中至少之一,确定各所述候选代码编译机的性能大小;基于确定的性能大小,从所述至少一个候选代码编译机中,选取性能最高的所述候选代码编译机,作为所述目标代码编译机。
[0018]在一些实施例中,上述确定模块,还用于针对各所述候选代码编译机分别执行以下处理:基于所述候选代码编译机的处理资源信息,确定所述候选代码编译机的处理性能分值;基于所述候选代码编译机的存储资源信息,确定所述候选代码编译机的存储性能分值;将所述处理性能分值和所述存储性能分值进行加权求和,得到所述候选代码编译机的性能大小。
[0019]在一些实施例中,所述运行信息还包括处理资源信息及存储资源信息,所述存储资源信息包括所述代码编译机对于历史编译任务的缓存率;上述确定模块,还用于基于各所述候选代码编译机的处理资源信息,确定所述候选代码编译机的处理性能分值,并将各所述候选代码编译机,按照所述处理性能分值进行排序,得到初始排序队列,其中,所述初始排序队列中的所述候选代码编译机,按照所述处理性能分值从高至低的顺序排序;从所述初始排序队列中的第一个所述候选代码编译机开始,依次进行候选代码编译机选取,得到目标数量的候选代码编译机,所述目标数量小于所述第一排序队列中所述候选代码编译机的总数量;将所述目标数量的候选代码编译机中,所述缓存率最高的所述候选代码编译机,确定为所述目标代码编译机。
[0020]在一些实施例中,上述确定模块,用于从所述目标编译集群中各所述代码编译机对应的代理中,获取所述代码编译机的运行信息;其中,所述代理是部署于所述代码编译机中,用于采集所述运行信息的应用程序。
[0021]在一些实施例中,上述响应模块,用于响应于代码编译请求,对代码编译请求进行解析,得到代码编译请求的任务参数;当任务参数包括编译类型标识时,将待编译代码的编译类型确定为插桩编译类型;当任务参数不包括编译类型标识时,将待编译代码的编译类型确定为常规编译类型;其中,编译类型标识,用于标识插桩编译类型,插桩编译类型的待编译代码,用于对正在编译中的代码的功能进行修改。
[0022]在一些实施例中,上述发送模块,还用于获取编译类型对应的系统编译文件,以及与待编译代码关联的目标平台标识;其中,系统编译文件,用于记录开发系统中的库函数,目标平台标识,用于标识待编译代码所适用的开发平台;基于系统编译文件、目标平台标识和待编译代码,生成编译任务。
[0023]在一些实施例中,当所述编译类型为插桩编译类型时,上述发送模块,还用于获取系统文件列表,所述系统文件列表,用于记录所述开发系统中的系统文件;确定所述待编译代码对应的编译文件列表,所述编译文件列表用于记录所述待编译代码对应的代码文件,所述代码文件包括所述待编译代码对应的系统文件;将所述系统文件列表中的系统文件,与所述编译文件列表中的各代码文件进行比对,得到重合文件,其中,所述重合文件是在所述全量系统文件列表和所述编译文件列表中均存在的文件;将所述重合文件,确定为所述
插桩编译类型对应的系统编译文件。
[0024]在一些实施例中,当所述编译类型为常规编译类型时,上述发送模块,还用于获取系统文件列表,其中,所述系统文件列表,用于记录所述开发系统中的系统文件;将所述系统文件列表中的各所述系统文件,确定为所述常规编译类型对应的系统编译文件。
[0025]在一些实施例中,上述代码编译装置,还包括:分群模块,用于获取所述编译类型的类型数量,以及大于或等于参考数量的待分群代码编译机,其中,所述参考数量是所述类型数量的两倍;基于所述编译类型,将所述待分群代码编译机进行分群,得到与各所述编译类型对应的编译集群。
[0026]在一些实施例中,上述响应模块,还用于从与各所述编译类型对应的编译集群中,选择与所述待编译代码的编译类型对应的目标编译集群。
[0027]本申请实施例提供一种电子设备,包括:
[0028]存储器,用于存储计算机可执行指令或者计算机程序;<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码编译方法,其特征在于,所述方法包括:接收到用于指示对待编译代码进行编译的代码编译请求,其中,所述待编译代码为采用编译型语言所编写的代码;响应于所述代码编译请求,确定所述待编译代码的编译类型,并确定与所述编译类型对应的目标编译集群,其中,所述目标编译集群包括至少两个代码编译机,不同的所述编译类型对应不同的所述目标编译集群;获取所述目标编译集群中各所述代码编译机的运行信息,并基于所述运行信息,从所述至少两个代码编译机中,确定目标代码编译机;生成对应所述待编译代码的编译任务,并将所述编译任务发送至所述目标代码编译机,以使所述目标代码编译机对所述待编译代码进行编译。2.根据权利要求1所述的方法,其特征在于,所述运行信息包括用于指示是否存在编译任务的编译任务信息;所述基于所述运行信息,从所述至少两个代码编译机中,确定目标代码编译机,包括:基于所述目标编译集群中各所述代码编译机的编译任务信息,对所述目标编译集群中的各所述代码编译机进行筛选,得到至少一个候选代码编译机,其中,所述候选代码编译机为不存在编译任务的代码编译机;从所述至少一个候选代码编译机中,选择一个代码编译机作为所述目标代码编译机。3.根据权利要求2所述的方法,其特征在于,所述运行信息还包括处理资源信息及存储资源信息;所述从所述至少一个候选代码编译机中,选择一个代码编译机作为所述目标代码编译机,包括:基于所述处理资源信息及存储资源信息中至少之一,确定各所述候选代码编译机的性能大小;基于确定的性能大小,从所述至少一个候选代码编译机中,选取性能最高的所述候选代码编译机,作为所述目标代码编译机。4.根据权利要求3所述的方法,其特征在于,所述基于所述处理资源信息及存储资源信息中至少之一,确定各所述候选代码编译机的性能大小,包括:针对各所述候选代码编译机分别执行以下处理:基于所述候选代码编译机的处理资源信息,确定所述候选代码编译机的处理性能分值;基于所述候选代码编译机的存储资源信息,确定所述候选代码编译机的存储性能分值;将所述处理性能分值和所述存储性能分值进行加权求和,得到所述候选代码编译机的性能大小。5.根据权利要求2所述的方法,其特征在于,所述运行信息还包括处理资源信息及存储资源信息,所述存储资源信息包括所述代码编译机对于历史编译任务的缓存率;所述从所述至少一个候选代码编译机中,选择一个代码编译机作为所述目标代码编译机,包括:基于各所述候选代码编译机的处理资源信息,确定所述候选代码编译机的处理性能分
值,并将各所述候选代码编译机,按照所述处理性能分值进行排序,得到初始排序队列,其中,所述初始排序队列中的所述候选代码编译机,按照所述处理性能分值从高至低的顺序排序;从所述初始排序队列中的第一个所述候选代码编译机开始,依次进行候选代码编译机选取,得到目标数量的候选代码编译机,所述目标数量小于所述第一排序队列中所述候选代码编译机的总数量;将所述目标数量的候选代码编译机中,所述缓存率最高的所述候选代码编译机,确定为所述目标代码编译机。6.根据权利要求1所述的方法,其特征在于,所述获取所述目标编译集群中各所述代码编译机的运行信息,包括:从所述目标编译集群中各所述代码编译机对应的代理中,获取所述代码编译机的运行信息;其中,所述代理是部署于所述代码编译机中,用于采集所述运行信息的应用程序。7.根据权利要求1所述的方法,其特征在于,所述响应于所述代码编译请求,确定所述待编译代码的编译类型,包括:响应于所述代码编译请求,对所述代码编译请求进行解析,得到所述代码编译请求的任...

【专利技术属性】
技术研发人员:高文冠
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1