二、关于编译器的优化(简单版)

133 阅读1分钟

本文由快学吧个人写作,以任何形式转载请表明原文出处。

一、简单的举例

我们在即将发布一个app的时候,都会将xcode的Edit Scheme中的Build Configuration选成Release模式。从Debug到Release,xcode就已经给我们的代码做了一些编译器的优化了。

我们随便写段代码进行举例。

举例 :

1、代码

- (int)sumNumber : (int)a andNumber :(int)b
{
    
    return a + b;
    
}

- (void)viewDidLoad {

    [super viewDidLoad];
    int a = 10;
    int b = 20;
    int c = a + b;
    int d = [self sumNumber:a andNumber:b];
    
    //NSLog这行挂上断点
    NSLog(@"编译器优化 :\n c :%d --- d :%d",c,d);  
}    

2、Edit Scheme的Build Configuration是默认的Debug模式

图片.png

3、运行代码。会停NSLog处的断点处。

4、然后打开汇编

图片.png

5、汇编结果

图片.png

6、将Edit Scheme的Build Configuration改成Release模式再看汇编

改成release

图片.png

7、再看汇编结果

图片.png

会发现包括10和20的16进制的数字都没有了,连加法的操作也没了。这就是编译器的一个优化后的结果。

二、简单的xcode设置

在Build Settings里面,我们去查找Optimization(优化的意思),可以看到 :

图片.png

在Optimization Level中,可以看到Debug模式下,优化程度选择的是None(没有优化),而Release模式下,优化模式选的是Fastest,Smallest(变得又快又小的优化)。

三、简单说下编译器优化的作用

编译器的优化,会减少包括 : 编译时间、链接时间、运行时间、空闲时间。