ios 编译相关优化

最开始发布公司sdk的时候是debug版本,客户反馈使用起来性能非常不好,平均一次调用track人脸需要200ms,后来使用release发布后只需要80ms,

但这些还是不能满足要求,因为之前在android版本上的时候双核标配比如note手机平均需要30ms。同样的代码,于是我们决定先从编译选项上下手来做ios的优化:

1. release版本发布。

2. 在code generation选项下有以下几项可以优化:

a. accelerated oc dispatch 选择yes,顾名思义,是加速了oc的调度。

b. ebforce strict aliasing 这个优化打开后会有一定的debug风险,一般建议关闭,但是如果你太苛刻就打开吧,有那么点优化,但是首先确保程序没有问题。

参考一篇文章:http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html

c. generation debug symbol 这个优化最主要是减少了生成的库或者程序的大小。

d. generation position-dependent code 位置相关代码比相应的与位置无关的代码需要更多的运行时重定位。总体而言,处理文本重定位的开销可能会严重降低性能。 那么就最好选择no吧

e. enable addtional vector extensions 选项里面提供了sse和avx。目前我们用的ios是arm体系cpu,所以sse可能没有用。看到一项解释:AVX并不是x86 CPU的扩展指令集,而是可以实现更高的效率,同时也和CPU硬件兼容性也更好,并且也有着足够的扩展空间,这都和其全新的命令格式系统有关。更加流畅的架构就是AVX发展的方向,换言之,就是摆脱传统x86的不足,在SSE指令的基础上AVX也使SSE指令接口更加易用。那么说avx可能会在arm上有所帮助,所以我抱着试试的希望选择了avx。

f. link-time optimization 打开,测试来说这个优化提高了不少。

g. unroll loops 循环展开,你懂的。

3. 在language里面找相关的选项:

a. 如果程序使用到native code,确认没有使用到c++ exception,rtti,那么最好关闭了。

b. 将所有相关inline的都设置为true。


暂时发现了这些。以后再补充,终于将性能提高到40ms左右了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值