如何分析和提高大型项目(CC++)的编译速度?

如何分析和提高大型项目(C/C++)的编译速度?

89688586cd6b4cc3bc4bdc040d3be001.png

C/C++编译基本原理

对于C/C++代码通常来说整个构建过程分为以下几个主要部分:

·预处理
在此阶段主要完成的工作是将头文件展开、替换宏指令、条件编译展开、消除注释。

·编译
在此阶段主要将预编译好的文件转换成汇编语言(高级语言->LLVM平台无关语言->平台汇编语言)。

·汇编
在此阶段将汇编语言转换为二进制机器语言。

·链接
将编译产物和预编译制品(.o、.a、.so)“拼”成可执行文件,具体一些就是为main编译过程中每一个未定义的符号去编译产物中挨个寻找相应的实现代码,补全符号地址信息。

在编译耗时分析中也就应该对以上几个主要方面分别进行时间维度的评估,逐渐细化分析粒度确定时间瓶颈,直到某个文件、某个函数、某个模板才能有针对性地制定从宏观的构建系统到微观的文件、符号的具体优化方案。

预处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值