移动端快速编译打包方法及装置制造方法及图纸

技术编号:36402911 阅读:17 留言:0更新日期:2023-01-18 10:10
本申请提供了一种移动端快速编译打包方法及装置,涉及代码编译领域,可应用于金融领域和其他领域,所述方法包含:根据接收到的打包任务解析获得任务参数;基于多个CI机器的算力数据,通过贪婪算法计算所述任务参数打包时的局部最优解;根据所述局部最优解通过对应的多个CI机器分别进行代码编译获得多个编译产物;根据所述编译产物通过合码链接生成执行文件,通过所述执行文件获得编译打包结果。通过所述执行文件获得编译打包结果。通过所述执行文件获得编译打包结果。

【技术实现步骤摘要】
移动端快速编译打包方法及装置


[0001]本申请涉及代码编译领域,可应用于金融领域和其他领域,尤指一种移动端快速编译打包方法及装置。

技术介绍

[0002]随着市场的发展,业务场景井喷式爆发,移动端承载的功能也越来越多,代码量的增加直接导致编译时长和打包时长直线增长。
[0003]全部业务代码几乎都以源码形式存在主工程下,以测试包打包为例,需要经历将源文件进行预编译,将代码编译成汇编语言底层代码,将汇编代码转换成为机器代码,链接.a、.lib等静态库文件,生成可执行文件,上传测试包;但该方式存在以下问题:验证一个测试问题,打包就得等一个小时。只修改了一个变量名,所有文件都需要重新编译。点了运行代码按钮,等待时间太长,严重拖拉研发效率。

技术实现思路

[0004]本申请目的在于提供一种移动端快速编译打包方法及装置,予以优化编译打包策略,减少编译打包的时长,提高了研发测试效能,增加了研发用户和测试用户的满意度。
[0005]为达上述目的,本申请所提供的移动端快速编译打包方法,具体包含:根据接收到的打包任务解析获得任务参数;基于多个CI机器的算力数据,通过贪婪算法计算所述任务参数打包时的局部最优解;根据所述局部最优解通过对应的多个CI机器分别进行代码编译获得多个编译产物;根据所述编译产物通过合码链接生成执行文件,通过所述执行文件获得编译打包结果。
[0006]在上述移动端快速编译打包方法中,可选的,通过贪婪算法计算所述任务参数打包时的局部最优解包含:根据所述任务参数查找前一次打包过程的打包配置参数;根据当前版本节点比较所述配置参数中的版本节点获得代码变更涉及组件;根据所述代码变更涉及组件的算力比较情况获得进行代码编译的CI机器信息,根据所述CI机器信息生成局部最优解。
[0007]在上述移动端快速编译打包方法中,可选的,根据所述代码变更涉及组件的算力比较情况获得进行代码编译的CI机器信息包含:根据所述代码变更涉及组件的算力计算对应的CI机器的编译时长;根据所述编译时长和对应的CI机器的工作状态对多个CI机器进行降序排列;通过所述降序排列确定进行代码编译的CI机器信息。
[0008]在上述移动端快速编译打包方法中,可选的,通过所述降序排列确定进行代码编译的CI机器信息还包含:根据所述CI机器信息分别计算对应的多个CI机器的完成代码编译的任务时间;比较所述任务时间获得比较结果,根据所述比较结果调整所述CI机器信息中的CI机器分配情况。
[0009]在上述移动端快速编译打包方法中,可选的,所述任务参数包含应用名称、版本类型和git流。
[0010]在上述移动端快速编译打包方法中,可选的,根据所述编译产物通过合码链接生成执行文件包含:计算空闲状态下的各CI机器完成所述编译产物合码链接的打包处理时间;根据所述打包处理时间和各CI机器的算力确定打包所述编译产物的CI机器,并通过确定的CI机器根据所述编译产物打包生成执行文件。
[0011]本申请还提供一种移动端快速编译打包装置,所述装置包含解析模块、分析模块、编译模块和打包模块;所述解析模块用于获取打包任务,根据所述打包任务解析获得任务参数;所述分析模块用于基于多个CI机器的算力数据,通过贪婪算法计算所述任务参数打包时的局部最优解;所述编译模块用于根据所述局部最优解通过对应的多个CI机器分别进行代码编译获得多个编译产物;所述打包模块用于根据所述编译产物通过合码链接生成执行文件,通过所述执行文件获得编译打包结果。
[0012]本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
[0013]本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
[0014]本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述方法的步骤。
[0015]本申请的有益技术效果在于:基于现有的编译打包策略,使用分布式编译加差异更新的思想,充分考量CI机器的算力,利用贪婪算法动态计算每次打包时的局部最优解,利用最小算力最大程度提升打包速度。
附图说明
[0016]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
[0017]图1为本申请一实施例所提供的移动端快速编译打包方法的流程示意图;
[0018]图2为本申请一实施例所提供的局部最优解的计算流程示意图;
[0019]图3为本申请一实施例所提供的CI机器信息的获取流程示意图;
[0020]图4为本申请一实施例所提供的CI机器分配情况的调优流程示意图;
[0021]图5为本申请一实施例所提供的执行文件的获取流程示意图;
[0022]图6为本申请一实施例所提供的移动端快速编译打包方法的应用流程示意图;
[0023]图7为本申请一实施例所提供的移动端快速编译打包装置的结构示意图;
[0024]图8为本申请一实施例所提供的电子设备的结构示意图。
具体实施方式
[0025]以下将结合附图及实施例来详细说明本申请的实施方式,借此对本申请如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本申请中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本申请的保护范围之内。
[0026]另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处
的顺序执行所示出或描述的步骤。
[0027]请参考图1所示,本申请所提供的移动端快速编译打包方法,具体包含:
[0028]S101根据接收到的打包任务解析获得任务参数;
[0029]S102基于多个CI机器的算力数据,通过贪婪算法计算所述任务参数打包时的局部最优解;
[0030]S103根据所述局部最优解通过对应的多个CI机器分别进行代码编译获得多个编译产物;
[0031]S104根据所述编译产物通过合码链接生成执行文件,通过所述执行文件获得编译打包结果。
[0032]其中,所述任务参数包含应用名称、版本类型和git流。所述CI机器俗称打包机,为专用来拉取代码进行编译打包并上传到测试包下载服务器的电脑设备。所述执行文件为可以由操作系统进行加载执行的文件,也就是软件安装包。所述合码链接为将编译产生的.o文件和.dylib、.a、.tdb文件,生成一个mach

o文件。在该实施例中,当获得任务参数后主要通过贪婪算法进行动态计算打包时长,以寻求最小打包时长路径,从而减少重复构建,提升打包速度,具体的将在后续实施例中详细说明,在此就不再详述。
[0033]请参考图2所示,在本申请一实施例中,通过贪婪算法计算所述任本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种移动端快速编译打包方法,其特征在于,所述方法包含:根据接收到的打包任务解析获得任务参数;基于多个CI机器的算力数据,通过贪婪算法计算所述任务参数打包时的局部最优解;根据所述局部最优解通过对应的多个CI机器分别进行代码编译获得多个编译产物;根据所述编译产物通过合码链接生成执行文件,通过所述执行文件获得编译打包结果。2.根据权利要求1所述的移动端快速编译打包方法,其特征在于,通过贪婪算法计算所述任务参数打包时的局部最优解包含:根据所述任务参数查找前一次打包过程的打包配置参数;根据当前版本节点比较所述配置参数中的版本节点获得代码变更涉及组件;根据所述代码变更涉及组件的算力比较情况获得进行代码编译的CI机器信息,根据所述CI机器信息生成局部最优解。3.根据权利要求2所述的移动端快速编译打包方法,其特征在于,根据所述代码变更涉及组件的算力比较情况获得进行代码编译的CI机器信息包含:根据所述代码变更涉及组件的算力计算对应的CI机器的编译时长;根据所述编译时长和对应的CI机器的工作状态对多个CI机器进行降序排列;通过所述降序排列确定进行代码编译的CI机器信息。4.根据权利要求3所述的移动端快速编译打包方法,其特征在于,通过所述降序排列确定进行代码编译的CI机器信息还包含:根据所述CI机器信息分别计算对应的多个CI机器的完成代码编译的任务时间;比较所述任务时间获得比较结果,根据所述比较结果调整所述CI机器信息中的CI机器分配情况。5.根据权利要...

【专利技术属性】
技术研发人员:韩天助张银成陈烨郭笑丹
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1