Avatar notebook default
16篇文章 · 769字 · 1人关注
  • Resize,w 360,h 240
    多线程(二)

    我们都知道,程序启动就会创建一个主线程来执行程序,我们先看一下默认开启的主线程的相关信息。在main函数打一个断点,看函数调用栈: 可以看到当前...

  • Resize,w 360,h 240
    类的加载(上)

    _objc_init objc源码入口就是_objc_init,接下来我们分析下这个函数: 首先,一个静态变量保证函数内部只会被执行一次。 en...

  • Resize,w 360,h 240
    iOS消息转发

    我们已经研究了objc_msgSend从汇编快速查找缓存流程,慢速查找流程,动态方法决议流程,如果这几个流程下来都没找到合适的执行方法,接下来就...

  • Resize,w 360,h 240
    编译器优化

    首先我们先看以下代码: 编译器优化优化的是什么呢,优化的是底层代码执行逻辑,使项目执行更加高效。汇编是最接近底层的代码,所以我们从汇编来看编译器...

  • Resize,w 360,h 240
    多线程(一)

    线程与进程 线程是进程的基本执行单元,一个进程所有任务都在线程中执行 进程想要执行任务,必须得有线程,进程至少要有一条线程 程序启动会默认开启一...

  • Resize,w 360,h 240
    应用程序加载:从dyld到objc

    想要了解应用程序加载,我们需要了解下面几个问题: 我们写的代码是如何加载到内存的? 我们使用的动静态库是如何加载到内存的? objc是如何启动的...

  • Resize,w 360,h 240
    方法查找和动态决议

    我们在objc_msgSend汇编流程[https://www.jianshu.com/p/2adbfbd398a2]分析了缓存的查找流程,缓存...

  • 方法的本质

    编译时和运行时 编译时:顾名思义就是正在编译的时候 . 那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码 .(当然只是一般意义上这么说...

  • Resize,w 360,h 240
    objc_msgSend汇编流程深入分析

    要研究objc_msgSend实现原理,我们就需要在源码中找实现,全局搜索objc_msgSend。因为有好多架构实现,而真机架构arm64,所...

文集作者