首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
底层相关
订阅
这个是DK
更多收藏集
微信扫码分享
微信
新浪微博
QQ
24篇文章 · 0订阅
iOS Memory 内存详解 (长文)
iOS 是基于 BSD 发展而来,所以先理解一般的桌面操作系统的内存机制是非常有必要的。在此基础之上,本文会进一步在 iOS 系统层面进行分析,包括 iOS 整体的内存机制,以及 iOS 系统运行时的内存占用的情况。最后会将粒度缩小到 iOS 中的单个 app,讲到单个 app…
从 OOM 到 iOS 内存管理 | 创作者训练营
从 OOM 崩溃出发,涉猎 iOS Jetsam 机制的相关内容,介绍如何获得设备内存阈值。介绍内存分配的基本概念,了解 iOS APP 的内存分布,以及如何分析 iOS 内存占用。引入一些实际的方法来在 iOS 开发过程中规避内存问题。 一切的一切,都从一个 OOM 崩溃出发…
从 YYCache 源码 Get 到如何设计一个优秀的缓存
本文将结合 YYCache 的源码逐步带大家找到答案。 YYCache 是一个线程安全的高性能键值缓存(该项目是 YYKit 组件之一)。YYKit 是在 2015 年发布到 Github 的,由于其代码质量很高,在短时间内就收获了大量的 Star(目前已经 1w+ Star …
iOS 野指针处理
处理 crash 时,有两类问题比较棘手,一个是今天要讨论的野指针,另一个是 OOM 崩溃。 这次主要用图解的形式,以便于理解野指针处理的核心概念。 先了解一下异常问题的类型,已经了解的同学可以略过。 软件异常:软件异常主要来自 kill(),pthread_kill()。iO…
使用二进制重排 & Clang插桩技术对iOS冷启动做优化太爽了
1.冷启动 1.1 什么是冷启动? 冷启动是指内存中不包含该应用程序相关的数据,必须要从磁盘载入到内存中的启动过程。 注意:重新打开 APP, 不一定就是冷启动。 当内存不足,APP被系统自动杀死
苹果iOS系统源码思考:对象的引用计数存储在哪里?--从runtime源码得到的启示
iOS开发者都知道OC里面的内存管理是通过对象的引用计数来管理的,或手动MRC,或自动ARC,有些操作可以让引用计数加1,有些可以减1,一旦一个对象的引用计数为0,就回收内存了。 可是,你仅仅知道这里就行了吗?指望你能造火箭造飞机的面试官可不这么想了,比如问你一句,一个对象的 …
由手势与 UIControl 冲突引发的「事件处理全家桶」探索
去年开发需求的时候做的思考学习,后知后觉发现没有发出来,补一份。 欢迎交流指正。 在写可横滑的 SlideActionSheet 时,要达成这样的效果:父 UIScrollView 的横滑手势在子 UIButton 上时也可以触发横滑,只有点击 UIButton 时才由它响应 …
iOS探索 浅尝辄止dyld加载流程
链接:将目标文件链接成可执行文件。这一过程中,链接器将不同的目标文件链接起来,因为不同的目标文件之间可能有相互引用的变量或调用的函数,如我们经常调用Foundation框架和UIKit 框架中的方法和变量,但是这些框架跟我们的代码并不在一个目标文件中,这就需要链接器将它们与我们…
iOS中的动态库,静态库和framework介绍
首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。 动态库,静态库,framework 其实不是一个维度上。 framework并不是库,它只是一种打包方式,它既可以是动态库也可以是静态库。将库的二进制文件,头文件和有关的资源文…
OC源码分析之方法的缓存原理
本文是针对 方法缓存——cache_t 的分析(且源码版本是 objc4-756.2),下面进入正文。 当你的OC项目编译完成后,类的实例方法(方法编号SEL 和 函数地址IMP)就保存在类的方法列表中。我们知道 OC 为了实现其动态性,将 方法的调用包装成了 SEL 寻找 I…