内存管理
文章平均质量分 94
内存管理
Z苗
这个作者很懒,什么都没留下…
展开
-
RunnLoop 讲解
RunLoop 的定义什么是RunLoop?//伪代码while (true) { Source* source = SleepAndWaitWakeUp(); Event* event = GetEventBySource(source); HandleEvent(event);}为什么需要RunLoop?试想一个,我们启动一个App,如何保证它一直运行着呢?我们来看下main函数的几行代码:int main(int argc, char * argv[]){原创 2021-07-28 15:04:25 · 168 阅读 · 0 评论 -
自动释放池(AutoreleasePool)
AutoreleasePool(自动释放池)是OC中的一种内存自动回收机制,它可以延迟加入AutoreleasePool中的变量release的时机。在正常情况下,创建的变量会在超出其作用域的时候release,但是如果将变量加入AutoreleasePool,那么release将延迟执行。main.m 文件里面的@autoreleasepool使用clang将OC代码转为C++cd 到main.m文件夹下1.cd /Users/zhaomiaomiao/Desktop/循环引用/循环引用.原创 2021-07-26 15:09:54 · 1751 阅读 · 7 评论 -
内存管理(内存布局,引用计数,自动释放池)
这里所说的内存,并非内存管理,是其他系统以及编程语言都有提及的你内存分区,是对编程语言来说比较广泛的内存说明。栈区堆区全局区常量区代码区我们知道任何一个程序在运行的时候实际是运行在内存中的,这个内存也就是我们通常所说的主存,也叫运行内存,也叫RAM,是直接与CPU进行交换数据内部储存器,内存读取速度很快,所以作为操作系统运行程序的区域。不同的分区保存不同的值,值可以为指针,也可以为对象,也可以为二进制代码。可以为数字等,每个分区都有自己的功能,它们一起协作作为系统提供更好的任务划分。.原创 2021-07-12 17:04:12 · 907 阅读 · 5 评论 -
内存管理——NSTimer循环引用讲解
NSTimer循环引用例子循环引用代码@interface ViewController ()@property (strong, nonatomic) NSTimer *timer;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // [NSRunLoop currentRunLoop] 对 timer 的强持有 self.timer = [NST原创 2021-07-25 14:11:50 · 448 阅读 · 0 评论