1.自動引用計數(shù)
在NSObject類的alloc類方法上設(shè)置斷點,追蹤程序的執(zhí)行箱蟆。以下列出執(zhí)行所調(diào)用的方法和函數(shù)。
+alloc;
+allocWithZone;
class_createInstance;
calloc
各個方法都通過同一個調(diào)用_CFDoExternRefOperation函數(shù),調(diào)用了一系列名稱相似的函數(shù)。蘋果的實現(xiàn)大概就是采用離散列表(引用計數(shù)表)來管理引用計數(shù)
通過引用計數(shù)表管理引用計數(shù)的好處
1.對象用內(nèi)存塊的分配無需考慮內(nèi)存塊頭部
2.引用計數(shù)表各記錄存有內(nèi)存塊地址,可從各個記錄追溯到各對象的內(nèi)存塊,方便檢查內(nèi)存泄漏
2.autorelease
NSRunloop每次循環(huán)過程中NSAutoreleasePool對象被生成或廢棄
NSAutoreleasePool *pool = [ [NSAutoreleasePool alloc]init];
id obj = [ [NSObject alloc] init];
[obj autorelease];
[pool drain]
autorelease 實例方法的本質(zhì)就是調(diào)用NSAutoreleasePool對象的addObject類方法
[NSAutoreleasePool showPools];
會將現(xiàn)在的NSAutoreleasePool的狀況輸出到控制臺