首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
性能
订阅
马大栗
更多收藏集
微信扫码分享
微信
新浪微博
QQ
22篇文章 · 0订阅
NSTimer内存/循环引用问题整合
日常开发最常用的定时方法还是NSTimer,CADisplayLink跟GCDTimer写起来还是略麻烦。但是对于重复的任务有一个重要问题:何时停掉这个任务。而且NSTimer经常会出现循环引用的问题,因此整合记录下。 依然未释放。这是因为启动timer时需要把timer添加到…
iOS编译速度如何稳定提高10倍以上之一
经过多年的发展,美柚iOS项目代码已经达到40W行+的规模,所使用的 Pod 库的数量达到了110+,App Store 安装包210M+,在这么大的项目规模下(CI机器 MAC配置:3 GHz 8-Core Intel Xeon E5;时间:发布20min+),(开发机器iM…
深入理解 iOS 启动流程和优化技巧 上
Image 指的是 Executable,Dylib 和 Bundle的一种,文中会多次使用 Image 这个名词。 Framework 动态库和对应的头文件、资源逻辑的集合。 Mach-O头部(mach header): 描述了Mach-O的CPU架构,文件类型,以及加载命令…
iOS 消息转发
其中在+ (BOOL)resolveInstanceMethod:(SEL)sel的时候,会有相应的方法缓存操作,这个操作是系统帮我们做的。 (1)首先qiMessage在调用length方法后,会先进行动态方法解析,调用+ (BOOL)resolveInstanceMetho…
iOS Rendering 渲染全解析(长文干货)
1. 计算机渲染原理 对于现代计算机系统,简单来说可以大概视作三层架构:硬件、操作系统与进程。对于移动端来说,进程就是 app,而 CPU 与 GPU 是硬件层面的重要组成部分。CPU 与 GPU 提供了计算能力,通过操作系统被 app 调用。 CPU(Central Proc…
浅析weak指针的实现
oc中weak指针主要用于打破循环或者防止循环引用的发生,应用场景还是很广泛的。那么被weak修饰的指针与被指向的对象在底层的运作机制究竟怎样的呢?为什么在对象释放销毁时weak指针能自动置为nil,从而避免了野指针的错误? 当对象被一个weak指针引用时,底层的实现原理就是:…
iOS开发基础——线程安全(线程锁)
NSLock遵循NSLocking协议,同时也是互斥锁,提供了lock和unlock方法来进行加锁和解锁。 NSLock内部是封装了pthread_mutext,类型是PTHREAD_MUTEXT_ERRORCHECK,它会损失一定的性能换来错误提示。 自旋锁存在优先级反转问题…
重拾 ObjC 自动释放池
Objc 自动释放池平时很少显式的使用,但其实它时刻在默默为我们工作。关于自动释放池源码分析的文章已经很多了,本文不会在源码层面剖析原理。 在 MRC 时代,需要使用retain和release手动维护对象的引用计数,并要遵循「谁创建谁释放」的原则。 在return处如果调用r…
iOS操作系统-- App启动流程分析与优化
源文件进行预处理(processing),处理预编译指令,生成.i文件,下一步进行编译,进行词法分析(lex工具识别词法规则语义表)、语法分析和语义分析生成.s汇编文件,最后进行汇编,生成二进制目标文件.o。目标文件再进行链接器链接,形成可执行文件.a或mach-o文件。 链接…
WWDC20 iOS14 Runtime优化
1. Class结构体变化 这个类对象包含了最常用的信息:指向元类、父类、以及方法的缓存。它还有一个指针指向更多的额外信息class_ro_t,其中 ro表示read only 。这部分信息是只读的,其中包含了类名、方法、协议、实例变量和属性等信息。Swift类和Objecti…