我们很少关注应用启动前,系统会给我们做些什么事情,可能知道+ load和constructor会在main方法之前执行。那么这次我们来看看mai...
在平时的iOS开发中,我们大部分还是依靠着最早的MVC的思想开发着,最多也是进行了部分变种,比如MVP,MVVM,这些都是完全的面向对象的思想,...
多线程编程一直是一个非常难的话题,而资源竞争和死锁问题则是比较常见的多线程问题,这里我们来看看如何检测这些问题。 LLVM 其实llvm项目自身...
相信大家在学习C语言的时候,malloc是最早遇到的几个方法之一,这里就来深入的了解下,macOS/iOS中用户空间的内存分配。 引言 首先,我...
内存栅栏(Memory fence),也称为内存屏障(Memory barrier),以前碰到这类概念都是基于锁的理解,比如dispatch_b...
在处理异步过程中,我们经常会碰到这种情况,需要异步处理并异步回调completionHandler,但是有些场景下,如果你在处理完异步逻辑,而不...
我们都认为C语言是一种非常静态的语言,几乎没有什么动态特性,同时往往在编译器就决定了整个运行方式,运行期是很难改变其运行状态的。其实C语言也是可...
在之前做debug工具的时候,就有一个想法,在页面产生卡顿的时候,如果能够获取主线程的函数调用栈就好了,就可以分析出哪里出现了性能瓶颈。由于当时...
在平时开发和调试中,经常遇到C调用栈和汇编,所以这里来统一的了解下这部分内容,本章需要一定的汇编基础才能更好的理解。 函数签名 在JavaScr...