技术新讯 > 计算推算,计数设备的制造及其应用技术 > 软件编译优化方法、设备以及存储介质与流程  >  正文

软件编译优化方法、设备以及存储介质与流程

  • 国知局
  • 2024-08-30 15:02:29

本技术涉及计算机,特别是涉及一种软件编译优化方法、设备以及存储介质。

背景技术:

1、在计算机领域中,软件工程项目在经过逐步迭代更新后,项目的工程复杂度会逐渐变高。除了项目本身的工程代码外,还会持续增加许多依赖子工程,进而导致项目的编译生成周期会被逐渐拉长。

2、目前尽管采用子工程并行编译等方式能提高项目的编译生成速度,但是在项目持续集成过程中,且需要频繁生成项目的情况下,仍明显影响着工程项目的开发周期,降低了工程项目的编译生成效率。

3、因此,如何提高开发效率成为当前亟待解决的问题之一。

技术实现思路

1、本技术至少提供一种软件编译优化方法、装置、设备以及计算机可读存储介质。

2、本技术第一方面提供了一种软件编译优化方法,包括:对获取到的软件工程项目的各头文件和各源文件进行分析处理,得到各头文件和各源文件之间的引用关系;基于所述引用关系和预设的文件筛选规则从各头文件中确定第一头文件以及从各源文件中确定第一源文件;基于获取到的各源文件在编译过程中的编译结果确定各源文件中的第二源文件以及确定各源文件中的第三源文件;基于所述第一头文件、所述第一源文件、所述第二源文件以及所述第三源文件之间的匹配结果确定待优化头文件和/或待优化源文件;对所述待优化头文件和/或所述待优化源文件进行优化处理,得到优化后的软件工程项目。

3、在一实施例中,所述基于获取到的各源文件在编译过程中的编译结果确定各源文件中的第二源文件以及确定各源文件中的第三源文件,包括:获取各源文件在编译过程中生成的目标文件的文件大小和各源文件在编译过程中的编译耗时;基于所述目标文件的文件大小对各源文件进行筛选处理,得到所述第二源文件;以及基于所述编译耗时对各源文件进行筛选处理,得到所述第三源文件。

4、在一实施例中,所述基于所述目标文件的文件大小对各源文件进行筛选处理,得到所述第二源文件;以及基于所述编译耗时对各源文件进行筛选处理,得到所述第三源文件,包括:基于各源文件对应生成的目标文件的文件大小以及预设的大小筛选阈值,对各源文件进行堆排序处理,得到所述第二源文件;基于各源文件对应的编译耗时以及预设的时间筛选阈值,对各源文件进行堆排序处理,得到所述第三源文件。

5、在一实施例中,所述基于所述第一头文件、所述第一源文件、所述第二源文件以及所述第三源文件之间的匹配结果确定待优化头文件和/或待优化源文件,包括:对所述第三源文件和所述第一源文件进行匹配处理,将和所述第一源文件匹配成功的第三源文件作为第一匹配源文件,以及将和所述第一源文件匹配失败的第三源文件作为所述待优化源文件;对所述第三源文件和所述第二源文件进行匹配处理,将和所述第二源文件匹配成功的第三源文件作为的第二匹配源文件;对所述第一匹配源文件和所述第二匹配源文件进行匹配处理,将匹配成功的第二匹配源文件所引用的第一头文件确定为所述待优化头文件,以及匹配失败的第二匹配源文件作为所述待优化源文件。

6、在一实施例中,所述对所述第三源文件和所述第一源文件进行匹配处理,包括:将所述第三源文件的文件名称和所述第一源文件的文件名称进行同名匹配处理,得到和所述第一源文件匹配成功的第三源文件,以及和所述第一源文件匹配失败的第三源文件;所述对所述第三源文件和所述第二源文件进行匹配处理,包括:将所述第三源文件的文件名称和所述第二源文件的文件名称进行同名匹配处理,得到和所述第二源文件匹配成功的第三源文件;所述对所述第一匹配源文件和所述第二匹配源文件进行匹配处理,包括:将所述第一匹配源文件的文件名称和所述第二匹配源文件的文件名称进行同名匹配处理,得到匹配成功的第二匹配源文件和匹配失败的第二匹配源文件。

7、在一实施例中,所述对所述待优化头文件和/或所述待优化源文件进行优化处理,得到优化后的软件工程项目,包括:基于所述引用关系查找每个待优化头文件对应的待处理源文件;获取每个待处理源文件所引用的各头文件的功能类型;对每个待处理源文件中所述功能类型重复的头文件进行功能去重处理;和/或,提取各待优化源文件中的预设代码模板,并对各预设代码模板进行外部声明处理,得到优化后的源文件;获取各优化后的源文件的依赖关系;对存在重复依赖关系的源文件进行依赖去重处理;得到所述优化后的软件工程项目。

8、在一实施例中,所述基于所述引用关系和预设的文件筛选规则从各头文件中确定第一头文件以及从各源文件中确定第一源文件,包括:基于所述引用关系确定每个源文件所引用的头文件数量,以及每个头文件的被引用次数;基于每个源文件所引用的头文件数量对各源文件进行筛选处理,得到所述第一源文件;基于每个头文件的被引用次数对各头文件进行筛选处理,得到所述第一头文件。

9、在一实施例中,在所述对获取到的软件工程项目的各头文件和各源文件进行分析处理,得到各头文件和各源文件之间的引用关系之前,包括:响应于所述软件工程项目的编译事件触发,对所述软件工程项目包含的解决方案进行解析,得到所述解决方案的编译信息;若基于所述编译信息判断所述解决方案未更新,则根据预设的复用列表获取所述解决方案对应的方案产物;若基于所述编译信息判断所述解决方案已更新,则对所述解决方案进行编译处理。

10、本技术第二方面提供了一种软件编译优化装置,包括:分析模块,用于对获取到的软件工程项目的各头文件和各源文件进行分析处理,得到各头文件和各源文件之间的引用关系;第一确定模块,用于基于所述引用关系和预设的文件筛选规则从各头文件中确定第一头文件以及从各源文件中确定第一源文件;第二确定模块,用于基于获取到的各源文件在编译过程中的编译结果确定各源文件中的第二源文件以及确定各源文件中的第三源文件;匹配模块,用于基于所述第一头文件、所述第一源文件、所述第二源文件以及所述第三源文件之间的匹配结果确定待优化头文件和/或待优化源文件;优化模块,用于对所述待优化头文件和/或所述待优化源文件进行优化处理,得到优化后的软件工程项目。

11、本技术第三方面提供了一种电子设备,包括存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述软件编译优化方法。

12、本技术第四方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述软件编译优化方法。

13、上述方案,通过对获取到的软件工程项目的各头文件和各源文件进行分析处理,得到各头文件和各源文件之间的引用关系;基于所述引用关系和预设的文件筛选规则从各头文件中确定第一头文件以及从各源文件中确定第一源文件,由此可以确定在编译过程中可能影响编译速度的头文件和源文件;基于获取到的各源文件在编译过程中的编译结果确定各源文件中的第二源文件以及确定各源文件中的第三源文件,则可以进一步确定影响编译速度的头文件和源文件;因此,通过第一头文件、第一源文件、第二源文件以及第三源文件之间的匹配结果能够对待优化头文件和/或待优化源文件进行定位;对待优化头文件和/或待优化源文件进行优化处理,能够优化编译过程,得到优化后的软件工程项目,由此提升软件项目工程的编译开发效率。

14、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本技术。

本文地址:https://www.jishuxx.com/zhuanli/20240830/285248.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。