iOS编译优化

iOS 编译设计 clang 和 llvm

编译过程如下:

  • 预处理:

    替换 宏定义,条件编译等

  • 词法分析

  • 语法分析

  • 遍历语法树生成汇编代码

  • 通过汇编器将汇编代码生成机器码

  • 生成 .o 机器码文件

配置

去掉无用代码

Build Settings - Linking - Dead Code Stripping 设置为 YES

Deployment - Deployment Postprocessing  Debug 环境设置为 NO,Release 环境设置为 YES

Delopment - Strip Linked Product 设置为 YES

异常

Apple Clang - Language - C++ - Enable C++ Exceptions Debug 环境下设置为YES,Release 环境下设置为 NO

Apple Clang - Language - Objective-C - Enable Objective-C Exceptions Debug 环境下设置为 YES, Release 环境下设置为 NO

减少Define宏定义的使用

因为 define 的每一次编译都需要检查,只要改动就要整个项目检查,因为 define 是在编译时替换,因此会很慢

工程组件化

尽量在合理设计.h 中的 API ,.h 文件尽量少引用

增量编译??
给 Xcode 提供专属内存盘,提高读写速度(没用过)
#!/bin/sh  

#
usage: $ramdisk.sh [capacity=4] [label=RamDisk]

#
default capacity=4(gb)
capacity=4
if [ "$1" != "" ]; then
capacity=$1
fi

#
default label="RamDisk"
label="RamDisk"
if [ "$2" != "" ]; then
label="$2"
fi

#
echo "capacity=$capacity label=$label"

#
1(capacity)=2097152(ram)
ram=$(($capacity*2097152))

if ! test -e "/Volumes/$label" ; then
diskutil erasevolume HFS+ "$label" `hdiutil attach -nomount ram://$ram`
fi
# 8 是大小
sh ramdisk.sh 8 DerivedData

然后将 Xcode 偏好设置中的 Locations 的 derived data 的路径设置为上面那个盘

############################################

这篇记录是半年前写的,现在在看回来,突然觉得没甚意思,这和我们上学那会儿的考试前的死记硬背没甚差别,我们都在记各种东西,但是工作中却是一个萝卜一个坑,很多东西也不用,很多东西只是为了面试,很多东西只是为了得到工作,可是工作给我带来了什么?我们一直在提倡努力工作,但是努力工作的意义何在?长时间的透支自己的时间工作,最终变成生活只剩工作,一旦工作没了,那好像生活也没了,可悲可叹。每天匆匆忙忙上班下班,披星戴月,就是为了那几个钱 💩 💩 💩 💩 💩 💩

###########################################

唉!!!💩 💩 💩 💩 💩 💩 💩 💩  搞钱搞钱 💩 💩 💩 💩 💩 💩 💩


原文始发于微信公众号(三万之一):iOS编译优化

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

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/231166.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!