Optimization Level
新建项目,运行,默认即为 Debug 模式,在 Build Setting 下 搜索 optimization 就可以看到,
可以看到 Debug 模式下无优化,而 Release 模则为 最优,优化过滤掉未使用,不需要等垃圾代码。(在不影响结果的情况下优化)
APP代码执行过程
以 iPhone X 为例,搭载的为 A11 CPU,两级高速缓存。
访问速度:
寄存器 > 1级高速缓存 > 2 级 高速缓存 > 内存 > 磁盘
代码加载则刚好反过来,2 级高速缓存为 8 MB,可以加载最多 8 MB 的代码, 一般小的项目基本上可以全部加载完!
后记--多线程的补充
我们 APP 运行时,肯定是多线程的,由 CPU 协调各个线程,其实是由 操作系统来管理的,在切换线程时会对当前线程的寄存器做一个保护,切换的时候就可以继续访问,而不用关心寄存器的值是否被改动。
所有关于多线程的保护,防止资源抢夺都是对内存的保护。