首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
超越杨超越
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
83
文章 82
沸点 1
赞
83
返回
|
搜索文章
最新
热门
clang之AddressSanitizer
Clang 12 documentation包含了一系列工具,如 AddressSanitizer、ThreadSanitizer、LeakSanitizer、LibTooling等。 这部分是对clang文档 Clang 12 documentation AddressSan…
iOS中符号的那些事儿
本文介绍了iOS开发中常见的符号及堆栈符号化等内容。 对于dSYM,iOS开发应该都比较熟悉了。 编译器在编译过程(即把源代码转换成机器码)中,会生成一份对应的Debug符号表。Debug符号表是一个映射表,它把每一个编译好的二进制中的机器指令映射到生成它们的每一行源代码中。这…
如何使用Swift来实现一个命令行工具
本文即简单介绍了如何在Swift中开发命令行工具,以及与Shell命令的交互。水文一篇,不喜勿喷。 主要是使用该工具来解析微信的性能监控组件Matrix的OOM Log。 这里,仅简单介绍了常见的基本模块。 Process类可以用来打开另外一个子进程,并监控其运行情况。 lau…
iOS源码解析: dispatch_once是如何实现的?
在之前的一篇文章 iOS源码解析: NotificationCenter是如何实现的? 中,顺便介绍了在dispatch_once时使用跨线程操作而导致死锁的情况。本文基于dispatch_once的源码,进一步介绍一下iOS习以为常的单例模式。看似非常简单,不过实际要考虑下边…
iOS源码解析: NotificationCenter是如何实现的?
本文从源码角度对iOS中的通知进行了解析,并对通知中心的一些特性进行了相应的解读。 NSNotification理所当然要包含通知name、object,且使用userInfo用于传递参数。 这里封装了一个结构体Name,而非直接使用字符串。所以,我们通常使用的话,需要这样写 …
iOS源码解析: GCD的信号量semaphore
信号量是GCD中最常见的操作,通常用于保证资源的多线程安全性。其本质实际上是基于mach内核的信号量接口来实现的,本文将从源码角度对其进行解析。 xref和ref是引用相关的。value和orig则是信号量执行任务的关键。执行一次dispatch_semaphore_wait操…
iOS源码解析: performSelector是如何实现的?
performSelector系列接口是runtime的一大特色,可以执行延迟,还能指定线程执行。本文从源码角度分析了其实现原理。 关于涉及到的数据结构,这里只是简单介绍一下。 SEL用于在runtime中表示一个方法名。与其对应的方法实现则使用IMP来表示。 并未找到objc…
对iOS中runloop使用场景的一次总结
这里大部分是从各个技术博客中参考而来,部分场景添加了一些实践代码。 使用CFRunLoopPerformBlock函数, 可以指定在runloopMode下执行block任务。不过一般不这样使用。 autoreleasepool是以栈为节点, 双向链表构建的一个数据结构。aut…
iOS源码解析: runloop的运行原理
接下来,会详细解读源码的一些细节,有些部分的代码会比较长,粘贴在这里也是为了保持其完整。 CFRunLoopRunSpecific函数通过第二个参数CFStringRef modeName来指定runloop运行的Mode。这里,使用的modeName参数是一个字符串,而非封装…
iOS源码解析: runloop的底层数据结构
runloop是iOS中的基本概念,其他系统也有类似的Event Loop、事件循环,这种关键的基础通常都是基于消息机制。而实现的关键也在于如何在消息未到达的时候,让系统休眠以避免资源占用;消息到达就唤醒系统来执行相应的任务。 本文对iOS中的runloop进行了深入解析,从源…
下一页
个人成就
文章被点赞
356
文章被阅读
211,089
掘力值
3,527
关注了
131
关注者
652
收藏集
7
关注标签
6
加入于
2017-10-12