基于DevOps平台的c/c++编译优化方法及系统技术方案

技术编号:39176324 阅读:8 留言:0更新日期:2023-10-27 08:24
本发明专利技术公开基于DevOps平台的c/c++编译优化方法及系统,涉及软件开发技术领域;包括步骤1:基于DevOps平台,启动Jenkins流水线的编译流程,步骤2:根据编译流程调用C++编译系统,记录源代码文件的时间戳,对比当前源代码文件的时间戳和上次编译记录的源代码文件的时间戳,确定被修改过的源代码文件,获取被修改过的源代码文件的依赖文件,步骤3:分析被修改过的源代码文件和其依赖文件,确定需要重新编译的源代码文件,步骤4:将需要重新编译的源代码文件和其依赖文件整合到新源代码文件中,得到新整合文件,并行编译新整合文件,生成目标文件,步骤5:将目标文件链接成可执行文件,步骤6:根据可执行文件,继续Jenkins流水线的后续集成与部署流程。集成与部署流程。集成与部署流程。

【技术实现步骤摘要】
基于DevOps平台的c/c++编译优化方法及系统


[0001]本专利技术公开一种方法及系统,涉及软件开发
,具体地说是基于DevOps平台的c/c++编译优化方法及系统。

技术介绍

[0002]随着软件开发的快速发展,C/C++作为一种常用的编程语言,被广泛应用于软件开发中。然而,由于C/C++程序的复杂性和规模,C/C++的编译速度变得越来越慢,影响了软件开发的效率和质量。
[0003]目前存在的问题如下:为了提高C/C++编译速度,通常采用的方法是使用多核CPU和并行编译技术。然而,这些方法需要硬件和软件的支持,并且对于大型项目,编译时间仍然很长。

技术实现思路

[0004]本专利技术针对现有技术的问题,提供基于DevOps平台的c/c++编译优化方法及系统,具有通用性强、实施简便等特点,具有广阔的应用前景。
[0005]本专利技术提出的具体方案是:
[0006]本专利技术提供基于DevOps平台的c/c++编译优化方法,包括:
[0007]步骤1:基于DevOps平台,启动Jenkins流水线的编译流程,
[0008]步骤2:根据编译流程调用C++编译系统,记录源代码文件的时间戳,对比当前源代码文件的时间戳和上次编译记录的源代码文件的时间戳,确定被修改过的源代码文件,获取被修改过的源代码文件的依赖文件,
[0009]步骤3:分析被修改过的源代码文件和其依赖文件,确定需要重新编译的源代码文件,
[0010]步骤4:将需要重新编译的源代码文件和其依赖文件整合到新源代码文件中,得到新整合文件,并行编译新整合文件,生成目标文件,
[0011]步骤5:将目标文件链接成可执行文件,
[0012]步骤6:根据可执行文件,继续Jenkins流水线的后续集成与部署流程。
[0013]进一步,所述的基于DevOps平台的c/c++编译优化方法中步骤1中基于DevOps平台,提供用户友好的图形界面,启动Jenkins流水线的编译流程,配置增量编译参数、查看编译进度和结果信息。
[0014]进一步,所述的基于DevOps平台的c/c++编译优化方法中步骤2中调用C++编译系统,利用开源编译器对源代码文件进行语法分析,并构建抽象语法树AST,
[0015]利用缓存和系统的历史记录记录源代码文件的时间戳,对比当前源代码文件的时间戳和上次编译记录的源代码文件的时间戳,确定被修改过的源代码文件,
[0016]利用AST提供的节点信息和系统API进行依赖分析,确定被修改过的源代码文件的依赖文件。
[0017]进一步,所述的基于DevOps平台的c/c++编译优化方法中步骤4中并行编译新整合文件时生成增量代码编译所需的中间文件,对于未被修改的源代码文件和其依赖文件,直接获取上次编译生成的中间文件,将增量代码编译所需的中间文件和上次编译生成的中间文件进行合并,生成目标文件。
[0018]进一步,所述的基于DevOps平台的c/c++编译优化方法中步骤5中利用链接器Gold或LLD进行目标文件链接,生成可执行文件。
[0019]本专利技术还提供基于DevOps平台的c/c++编译优化系统,包括管理模块和集成部署模块,
[0020]管理模块基于DevOps平台,启动Jenkins流水线的编译流程,
[0021]根据编译流程调用C++编译系统,记录源代码文件的时间戳,对比当前源代码文件的时间戳和上次编译记录的源代码文件的时间戳,确定被修改过的源代码文件,获取被修改过的源代码文件的依赖文件,
[0022]分析被修改过的源代码文件和其依赖文件,确定需要重新编译的源代码文件,
[0023]将需要重新编译的源代码文件和其依赖文件整合到新源代码文件中,得到新整合文件,并行编译新整合文件,生成目标文件,
[0024]将目标文件链接成可执行文件,
[0025]集成部署模块根据可执行文件,继续Jenkins流水线的后续集成与部署流程。
[0026]进一步,所述的基于DevOps平台的c/c++编译优化系统中管理模块基于DevOps平台,提供用户友好的图形界面,启动Jenkins流水线的编译流程,配置增量编译参数、查看编译进度和结果信息。
[0027]进一步,所述的基于DevOps平台的c/c++编译优化系统中管理模块调用C++编译系统,利用开源编译器对源代码文件进行语法分析,并构建抽象语法树AST,
[0028]利用缓存和系统的历史记录记录源代码文件的时间戳,对比当前源代码文件的时间戳和上次编译记录的源代码文件的时间戳,确定被修改过的源代码文件,
[0029]利用AST提供的节点信息和系统API进行依赖分析,确定被修改过的源代码文件的依赖文件。
[0030]进一步,所述的基于DevOps平台的c/c++编译优化系统中管理模块并行编译新整合文件时生成增量代码编译所需的中间文件,对于未被修改的源代码文件和其依赖文件,直接获取上次编译生成的中间文件,将增量代码编译所需的中间文件和上次编译生成的中间文件进行合并,生成目标文件。
[0031]进一步,所述的基于DevOps平台的c/c++编译优化系统中管理模块利用链接器Gold或LLD进行目标文件链接,生成可执行文件。
[0032]本专利技术的有益之处是:
[0033]本专利技术提供基于DevOps平台的c/c++编译优化方法,用于提高C++编译速度和自动化程度。本专利技术启动Jenkins流水线,在进行代码编译阶段时,只编译被修改过的文件以及依赖的文件,而不需要重新编译整个项目;其次,把修改的文件以及依赖文件整合成几组cpp文件,然后对整合后的文件进行编译,降低磁盘IO的时间,从而大大缩短编译时间;最后生成可执行文件,参与Jenkins流水线的后续集成、部署等阶段。同时,本专利技术的实现方法简单易行,自动化程度高。具有一定的可操作性,可用于大型项目的编译和开发中。
附图说明
[0034]图1是本专利技术方法流程示意图。
[0035]图2是本专利技术增量编译整合文件、并行编译文件的示意图。
具体实施方式
[0036]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。
[0037]本专利技术提供基于DevOps平台的c/c++编译优化方法,包括:
[0038]步骤1:基于DevOps平台,启动Jenkins流水线的编译流程,
[0039]步骤2:根据编译流程调用C++编译系统,记录源代码文件的时间戳,对比当前源代码文件的时间戳和上次编译记录的源代码文件的时间戳,确定被修改过的源代码文件,获取被修改过的源代码文件的依赖文件,
[0040]步骤3:分析被修改过的源代码文件和其依赖文件,确定需要重新编译的源代码文件,
[0041]步骤4:将需要重新编译的源代码文件和其依赖文件整合到新源代码文件中,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于DevOps平台的c/c++编译优化方法,其特征是包括:步骤1:基于DevOps平台,启动Jenkins流水线的编译流程,步骤2:根据编译流程调用C++编译系统,记录源代码文件的时间戳,对比当前源代码文件的时间戳和上次编译记录的源代码文件的时间戳,确定被修改过的源代码文件,获取被修改过的源代码文件的依赖文件,步骤3:分析被修改过的源代码文件和其依赖文件,确定需要重新编译的源代码文件,步骤4:将需要重新编译的源代码文件和其依赖文件整合到新源代码文件中,得到新整合文件,并行编译新整合文件,生成目标文件,步骤5:将目标文件链接成可执行文件,步骤6:根据可执行文件,继续Jenkins流水线的后续集成与部署流程。2.根据权利要求1所述的基于DevOps平台的c/c++编译优化方法,其特征是步骤1中基于DevOps平台,提供用户友好的图形界面,启动Jenkins流水线的编译流程,配置增量编译参数、查看编译进度和结果信息。3.根据权利要求1所述的基于DevOps平台的c/c++编译优化方法,其特征是步骤2中调用C++编译系统,利用开源编译器对源代码文件进行语法分析,并构建抽象语法树AST,利用缓存和系统的历史记录记录源代码文件的时间戳,对比当前源代码文件的时间戳和上次编译记录的源代码文件的时间戳,确定被修改过的源代码文件,利用AST提供的节点信息和系统API进行依赖分析,确定被修改过的源代码文件的依赖文件。4.根据权利要求1所述的基于DevOps平台的c/c++编译优化方法,其特征是步骤4中并行编译新整合文件时生成增量代码编译所需的中间文件,对于未被修改的源代码文件和其依赖文件,直接获取上次编译生成的中间文件,将增量代码编译所需的中间文件和上次编译生成的中间文件进行合并,生成目标文件。5.根据权利要求1所述的基于DevOps平台的c/c++编译优化方法,其特征是步骤5中利用链接器Gold或LLD进行目标文件链接,生成可执行文件。6.基于De...

【专利技术属性】
技术研发人员:李圣伟贾荫鹏李彬魏子重李锐
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1