
我们都知道,程序启动就会创建一个主线程来执行程序,我们先看一下默认开启的主线程的相关信息。在main函数打一个断点,看函数调用栈: 可以看到当前...
_objc_init objc源码入口就是_objc_init,接下来我们分析下这个函数: 首先,一个静态变量保证函数内部只会被执行一次。 en...
我们已经研究了objc_msgSend从汇编快速查找缓存流程,慢速查找流程,动态方法决议流程,如果这几个流程下来都没找到合适的执行方法,接下来就...
首先我们先看以下代码: 编译器优化优化的是什么呢,优化的是底层代码执行逻辑,使项目执行更加高效。汇编是最接近底层的代码,所以我们从汇编来看编译器...
线程与进程 线程是进程的基本执行单元,一个进程所有任务都在线程中执行 进程想要执行任务,必须得有线程,进程至少要有一条线程 程序启动会默认开启一...
想要了解应用程序加载,我们需要了解下面几个问题: 我们写的代码是如何加载到内存的? 我们使用的动静态库是如何加载到内存的? objc是如何启动的...
我们在objc_msgSend汇编流程[https://www.jianshu.com/p/2adbfbd398a2]分析了缓存的查找流程,缓存...
编译时和运行时 编译时:顾名思义就是正在编译的时候 . 那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码 .(当然只是一般意义上这么说...
要研究objc_msgSend实现原理,我们就需要在源码中找实现,全局搜索objc_msgSend。因为有好多架构实现,而真机架构arm64,所...
文集作者