编译器优化

在不同模式(debug,release)下,汇编的代码是不一样的。比如在debug,会取值入栈,再从栈取到寄存器等等

优化主要是指汇编指令变少,跳转变少(其中内存读写耗时)。

其中A11 CPU架构中 读写数据速度 寄存器  > 高速缓存 >  内存 > 磁盘

1.Optimization Level优化

其中Optimization有多种

  • None
  • Fast
  • Faster
  • Fastest
  • 线上release默认 Fastest,Smallest (又快又小)
  • Fastest Aggressive optimizations

比如下面简单代码在不同模式下的汇编代码

在 None模式下:

在Fastest Smallest模式下没用使用代码的情况:他直接ret (去掉一些没用垃圾代码)

在Fastest Smallest模式下,有使用代码(他会在编译的时候把函数换成结果,进而优化)

汇编代码:

其中函数在编译的时候已经知道实现的代码结果(内存中找)

其中app安装在磁盘,打开在内存,然后把内存放入8M的高速缓存中,然后寄存器直接去高速缓存中读取

发表回复

电子邮件地址不会被公开。 必填项已用*标注

Protected with IP Blacklist CloudIP Blacklist Cloud