快速链接——加速编译和App启动

Link Fast — 加速编译和App启动

这篇文章主要是对 WWDC 22 的视频 Link Fast——Improve build and launch times 进行归纳总结。

视频里聊到了,静态库和动态库的一些链接细节,以及 Xcode 14 为我们提供了哪些工具,来对我们的编译时长,做一些可能性的优化。

苹果在 Xcode 14 发布了他们开发的最新的静态库链接器——ld64,苹果聊到了4种新的链接器配置,用来为开发者的编译加速——但苹果也说,具体有没有用,还得你亲自在工程里试了,才知道。:)这很苹果。

静态库的选择性链接——通过-all_load和-dead_strip规避

默认的情况下,链接器是按函数的调用顺序进行链接的,这意味着,整个链接是单线程的——因为只有在a调用了b的情况下,链接器才会去链接b。

但如果不需要链接器去进行这个判断,就可以让整个链接过程并发。

可以通过在 other linker flags 中添加-all_load参数,来告诉链接器,全量链接静态库的符号,不需要选择性链接,从而加速链接的过程。

-all_load 也有缺点,因为可能会把不在使用的代码也加载进来,导致包体积变大。

但也可以通过添加 -dead_strip 链接器选项,来将无法访问的代码和数据移除。

何时使用 静态库?
  • 任何代码变更&#x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值