首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
内存
订阅
默同志59966
更多收藏集
微信扫码分享
微信
新浪微博
QQ
14篇文章 · 0订阅
iOS 内存管理研究
iPhone 作为一个移动设备,其计算和内存资源通常是非常有限的,而许多用户对应用的性能却很敏感,卡顿、应用回到前台丢失状态、甚至 OOM 闪退,这就给了 iOS 工程师一个很大的挑战。 网上的绝大多数关于 iOS 内存管理的文章,大多是围绕 ARC/MRC、循环引用的原理或者…
Objective-C内存管理
看起来好像很简单,但是在do somethind的过程中可能经历里很多的,所以说保证这块内存的正确使用完全依靠程序员,有很大的风险,而且调试指针异常也是很麻烦的。 autorelease的实现是要配合autoreleasepool来完成的,AutoreleasePoolPage…
DEAD in iOS Memory
这时候,就产生了一种解决方案,一种对主存的抽象概念,叫做 虚拟内存(Virtual Memory/VM,下文中为了简便可能会使用缩写) 。 虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。 VM是沉默的工…
iOS概念攻坚之路(三):内存管理
iOS 的内存管理不止是 「引用计数表」。 iOS 开发者基本都知道 iOS 是通过「引用计数」来管理内存的,但是也许并不知道 iOS 其他的内存管理方式,比如 「Tagged Pointer」(带标记的指针),比如 「NONPOINTER_ISA」(非指针型 isa),这个要…
关联对象的实现原理【OC】
AssociationedObject多用于在Category中为特定类扩展成员变量,也有用于在运行时为某些对象动态创建成员变量。AssociationedObject可以说是一种特殊的成员变量。 这篇文章是来详细解释AssociationedObject的实现原理,篇幅较长。…
分析oc对象的内存结构及其创建过程
首先分析对象的内存结构,其实我们知道oc的对象指针其实就是结构体指针,也就是说oc的对象转成c++代码后其实就是一个结构体。定义一个简单的类代码如下: 先忽略say方法的存在(方法跟结构体的isa指针相关,稍后再分析),可以看出来 struct Person_IMPL的结构体定…
聊聊iOS开发中的AutoreleasePool
可见__AtAutoreleasePool是一个C++结构体,在C++中结构体类似我们iOS中的“类”这个概念,结构体里面有两个与结构体同名的函数__AtAutoreleasePool()、 ~__AtAutoreleasePool()分别称之为构造函数和析构函数,他们分别在结…
Objective-C中的内存管理机制
从苹果的官方文档来看,OC对应用程序的内存管理提供了2种方法。 第一种即“manual retain-release”(MRR),手动保留释放,也可理解为手动引用计数。 第二种,“Automatic Reference Counting”(ARC),自动引用计数。但是ARC并不…
浅析weak指针的实现
oc中weak指针主要用于打破循环或者防止循环引用的发生,应用场景还是很广泛的。那么被weak修饰的指针与被指向的对象在底层的运作机制究竟怎样的呢?为什么在对象释放销毁时weak指针能自动置为nil,从而避免了野指针的错误? 当对象被一个weak指针引用时,底层的实现原理就是:…
从runtime源码解读oc对象的引用计数原理
现在我们使用oc编程不用进行手动内存管理得益于ARC机制。ARC帮我们免去了大部分对对象的内存管理操作,其实ARC只是帮我们在合适的地方或者时间对对象进行-retain或-release,并不是不用进行内存管理。 通过我之前分析的oc对象内存结构可以知道,其实对象的引用计数是存…