不知道大家有没有经历过,公司给配个mac,最低配,没有ssd,Cpu1.4GHz。全量编译一次一二十分钟,增量编译也要至少三分钟,尤其是在调UI的时候。真的是能捉急死人!
搜罗各地找到一个比较实用的加快编译的方法。
1.前提与原理
内存16G以上,小于此标准的请恕我也无能为力。
此方法主要是利用RAM(内存)来创建一个虚拟的磁盘,用来存放编译文件。大家都知道,RAM的速度是ROM(存储器)的几十到几百倍不等,利用RAM可以加速文件读写。
2.创建脚本文件
可以使用Sublime(文件类型请选择Shell Script(Bash))或者终端vi编辑器(不会的自行学习),在桌面创建一个文件,文件名ramdisk.sh(名字可以自定,后缀不能改)
写入以下脚本代码保存:
#!/bin/bash
RAMDISK="ramdisk"
SIZE=4096 #4GB, size in MB for ramdisk.
diskutil erasevolume HFS+ $RAMDISK `hdiutil attach -nomount ram://$[SIZE*2048]`
2.执行脚本文件
首先需要给文件添加可执行权限,终端cd到ramdisk.sh文件统计目录下(此处就是桌面),终端执行一下命令给文件添加可执行权限
chmod +x ./ramdisk.sh
然后终端输入以下命令执行文件
./ramdisk.sh
你会发现桌面上多了一个磁盘如下图所示
3.修改Xcode的配置
Xcode -> Preferences -> Locations
Derived Data (Custom): /Volumes/ramdisk/DeriveData
点击Advanced...选以下点击Done
之后就可以进行编译了,有没有发现快了一点呢?
4.总结
试过之后,确实是要快一点的,尤其是对全量编译而言,能提升不少速度。
问题:
1、4GB的大小勉强够用,可能在编译几十次之后会出现空间不足的情况,这时候可以把ramdisk里面DriveData下面的文件删除,重新编译(当然你也可以给的空间大一点)。
2、由于内存只是暂存,重启之后ramdisk的磁盘会消失,需要重新跑一次脚本,重新生成。
以上方法仅为权宜之计,最好的解决办法就是换一台带SSD的配置好一点的mac。如果你的mac配置本来就很好,是因为你的项目实在太大,那就需要另寻他法了,比如说:使用模块化方案,每一块分成一个静态包,这样每次只编译打开的部分代码,这样可以提高编译速度(这就涉及太广了,有兴趣可以自行学习)。