Closed zhongwuzw closed 6 years ago
ARC已经很成熟了,并没有刻意去规避不使用ARC,缘由是因为VasSonic是在iPhoneQQ上面做的一个优化框架,而 iPhoneQQ是一个从MRC时代开始创建的项目,并且对安装包大小有比较严格的要求,在同等代码情况下,ARC编译的二进制会比MRC编译出来的要大,所以综合考虑就采用的MRC来控制内存。
@sonic-ios-dev 了解,我也验了一下用Xcode 9.4.1将demo打包后的包大小,MRC下是227KB,ARC是254KB. 虽然差距不是很大,但是我理解应该和很多的因素有关吧,比如编译器版本,库的代码实现等。
在看
iOS
的源码时,发现框架都是使用的MRC
来管理内存的。很好奇原因是什么呢?ARC
和MRC
相比是存在某些劣势么?按我的理解,
ARC
相比于MRC
是存在很多的优势的:retain
、release
会作优化,既移除一些不必要的retain/release
。暂时能想到的是
MRC
编译时会比ARC
快一点?