
iOS-Memory
文章平均质量分 95
Jsen_Wang
态度决定一切
展开
-
通过Mach-O文件结构看iOS堆栈信息(函数地址与符号关联)
任务Mach-Task描述:一个机器无关的thread的执行环境抽象作用:task可以理解为一个进程,包含它的线程列表结构体:task_threadstask_threads将traget_task任务下的所有线程保存在act_list数组中,数组个数为act_listCntkern_return_t task_threads( task_t traget_task,...转载 2020-03-19 10:32:05 · 2312 阅读 · 0 评论 -
通过Mach-O文件结构看iOS堆栈信息
Mach-O文件Mach-O格式全称为Mach Object文件格式的缩写Mach-O文件类型分类:1.Executable:应用可执行的二进制文件,如.m/.h文件经过编译后会生成对应的Mach-O文件2.Dylib Library:动态链接库3.Static Library:静态链接库4.Bundle:不能被链接 Dylib,只能在运行使用dlopen()加载5.Reloc...转载 2020-03-19 10:28:59 · 847 阅读 · 0 评论 -
关于iOS内存管理的规则思考
关于iOS内存管理的规则思考自己生成的生成的对象,自己持有。非自己生成的对象,自己也能持有。不在需要自己持有的对象时释放。非自己持有的对象无法释放。注:这里的自己是对象使用的环境,理解为编程人员本身也没有错对象操作和Objective-C方法对应 对象操作 Objectivew-C方法 生成并持有对象 alloc/copy/mutableCopy/new或以此开头的方法原创 2016-12-21 17:08:02 · 3459 阅读 · 0 评论 -
iOS内存管理——alloc/release/dealloc方法的GNUstep实现与Apple的实现
iOS内存管理——alloc/release/dealloc方法的GNUstep实现与Apple的实现接上篇关于iOS内存管理的规则考我们通过alloc/release/dealloc方法的具体实现来深入探讨内存管理。什么是GNUstep `GNUstep`是`Cocoa`框架的互换框架,从源代码的实现上来说,虽然和Apple不是完全一样,但是从开发者的角度来看,两者的行为和实现方式是一样,或原创 2016-12-23 15:26:57 · 3797 阅读 · 2 评论 -
iOS内存管理——autorelease方法解析
iOS内存管理——autoreleaseautorelease 自动释放注意:autorelease和ARC 是完全不同的两个东西,没有任何联系。autorelease和ARCautorelease的内存管理方式是在autoreleasePool释放的时候对其中持有的对象依次进行release操作,这样做有个隐患就是如果autoreleasePool迟迟不能被释放,则会有大量的对象在内存中,原创 2017-02-06 14:29:49 · 747 阅读 · 0 评论 -
Runtime objc4-723 objc_class
Runtime objc4-723 objc_class前情提要:runtime的源码版本: objc4-723时间:2019-01-06objc_classstruct objc_class : objc_object {// Class ISA;Class superclass;cache_t cache; // formerly cache point...原创 2019-01-06 01:10:15 · 1177 阅读 · 0 评论