首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
内存管理
订阅
火柴盒环游记
更多收藏集
微信扫码分享
微信
新浪微博
QQ
14篇文章 · 0订阅
iOS性能优化(内存分布与TaggedPointer)
iOS中的内存区域从低地址到高地址分别为 .text段(代码区)、.data段(已初始化的全局变量、静态变量)、.bss段(未初始化的全局变量、静态变量)、堆区、栈区。 这里说明一点:栈区从上往下走,堆区会从下往上走,当两个相遇的时候,则会发生堆栈溢出。 普通对象查找过程: 先…
SideTables 相关
自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,适用于锁使用者保持锁时间比较短的情况。 作为一个调用入口,当 newObj 存在时调用 storeWeak。
笔记-更深层次的了解iOS内存管理
在研究Hash表的过程中,想看iOS当中有哪些场景应用,最为大家所知的应该就是weak关键字的底层原理,利用网上的资料深究了一下,同时更进一步了解到了iOS内存管理方面的知识,所以希望自己能够保留这份记忆,就记录一下。 Hash或者说散列表,它是一种基础数据结构,这里为什么会说…
iOS RunLoop详解
RunLoop从字面上来说是跑圈的意思,如果这样理解不免有些肤浅。下面是苹果官方文档的关于RunLoop的一段说明。 简单的说RunLoop是一种高级的循环机制,让程序持续运行,并处理程序中的各种事件,让线程在需要做事的时候忙起来,不需要的话就让线程休眠。 从上面关于RunLo…
iOS内存管理二:自动释放池autoreleasepool
熟悉OC开发的都知道,在main函数中就有@autoreleasepool这样一个东西,其实这就是自动释放池。那么@autoreleasepool的底层实现是什么样的呢?我们在命令行中使用 clang -rewrite-objc main.m -o main.cpp 让编译器重…
iOS - 老生常谈内存管理(一):引用计数
随着各个平台的发展,现在被广泛采用的内存管理机制主要有 GC 和 RC 两种。 GC (Garbage Collection):垃圾回收机制,定期查找不再使用的对象,释放对象占用的内存。 RC (Reference Counting):引用计数机制。采用引用计数来管理对象的内存…
理解 ARC 实现原理
ARC 是 iOS 中管理引用计数的技术,帮助 iOS 实现垃圾自动回收,具体实现的原理是由编译器进行管理的,同时运行时库协助编译器辅助完成。主要涉及到 Clang (LLVM 编译器) 和 objc4 运行时库。 本文主要内容由修饰符 __strong 、 __weak 、 …
iOS性能优化系列篇之“列表流畅度优化”
这一篇文章是iOS性能优化系列文章的的第二篇,主要内容是关于列表流畅度的优化。在具体内容的阐述过程中会结合性能优化的总体原则进行阐述,所以建议大家在阅读这篇文章前先阅读一下上一篇文章:iOS性能优化系列篇之“优化总体原则”, 第三篇体验优化,我们有点不一样。 由于平时工作比较忙…
iOS探索 alloc流程
data()->ro->instanceSize就是获取这个类所有属性内存的大小。这里只有继承NSObject的一个属性isa——返回8字节 简单画了个示意图,上边是紧紧挨着,下面是8字节为一格。如果cpu存数据的时候紧紧挨着,读取的时候要不断变化读取长度,所以这时候就采用了空…
iOS内存二三事
Page In/Out和 Swap In/Out 概念类似,只不过Page In/Out是将某些页的数据写到内存/从内存写回磁盘交互区;而Swap In/Out是将整个地址空间的数据写到内存/从内存写回磁盘交互区;本质都是交互机制。 通用的计算机(大型机和专用计算机不在此范围)…