编译器优化

作者: Superman168 | 来源:发表于2018-07-05 19:02 被阅读0次

Optimization Level

新建项目,运行,默认即为 Debug 模式,在 Build Setting 下 搜索 optimization 就可以看到,

Optimization Level

可以看到 Debug 模式下无优化,而 Release 模则为 最优,优化过滤掉未使用,不需要等垃圾代码。(在不影响结果的情况下优化)

优化等级

APP代码执行过程

以 iPhone X 为例,搭载的为 A11 CPU,两级高速缓存。

访问速度:
寄存器 > 1级高速缓存 > 2 级 高速缓存 > 内存 > 磁盘

代码加载则刚好反过来,2 级高速缓存为 8 MB,可以加载最多 8 MB 的代码, 一般小的项目基本上可以全部加载完!

后记--多线程的补充

我们 APP 运行时,肯定是多线程的,由 CPU 协调各个线程,其实是由 操作系统来管理的,在切换线程时会对当前线程的寄存器做一个保护,切换的时候就可以继续访问,而不用关心寄存器的值是否被改动。

所有关于多线程的保护,防止资源抢夺都是对内存的保护。

相关文章

  • LLVM

    一、编译器 性能优化:启动优化、界面优化、架构优化 编译型语言:OC(编译器是clang)、C(编译器可以直接执行...

  • Linux 下如何绕过编译器优化

    本文首次发表在 Linux 下如何绕过编译器优化 有同学在群里聊到编译器优化的事情,很多时候期望编译器默认做优化,...

  • JMM造成指令重排的原因

    1、编译器优化 2、Processor 优化(流水线) 3、MESI缓存优化

  • iOS逆向之OC反汇编(上)

    本文主要讲解编译器的优化以及指针的汇编 编译器优化 设置 可在项目的BuildSetting->Optimizat...

  • 内联函数(Inline Function)

    场景:如果开启了编译器优化(Release模式默认会开启优化),编译器自动将某些函数变成内联函数 调用方式如下: ...

  • 编译器优化部分代码

    我们简单写一些代码看编译器优化前后的对比。编译器没有优化时 在Build Setting 搜索optimizati...

  • iOS的性能优化

    1、ipa包体积优化 1.1 编译配置优化:编译器代码层面优化Optimize Level;Bitcode(较难...

  • @inline inout

    内联函数 如果开启了编译器优化(Release模式默认会开启优化),编译器会自动将某些函数变成内联函数.即将函数调...

  • 晚期(运行期)优化

    HotSpot的即时编译器 解释器与编译器 编译对象与触发条件 编译过程 编译优化技术 如果还对其他的经典编译优化...

  • JVM中锁的优化策略

    即时编译器优化技术有很多种,JVM一书中介绍了4种重要的优化技术。 下面我们来聊一聊关于即时编译器其余的优化技术之...

网友评论

    本文标题:编译器优化

    本文链接:https://www.haomeiwen.com/subject/vozpuftx.html