1.启动时间
- 1.1 main启动前时间测量: 通过环境变量,直接打印
run >> arguments >> environment >> +号Name: DYLD_PRINT_STATISTICS
Value: 1 - 1.2 main之后通过计时打印时间
main.m:1
2
3
4
5
6
7
8CFAbsoluteTime startTime;
int main(int argc, char * argv[]) {
@autoreleasepool {
startTime = CFAbsoluteTimeGetCurrent();
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
delegate.m:
1 | extern CFAbsoluteTime startTime; |
2. 内存分析
- 2.1 weak 与 assign
assign : __unsafe__unretained 引用的对象释放后,指针依然指向原地址
weak : 引用对象释放后,指针指向nil - 2.2 检测内存泄漏方法
- 静态分析
- 动态检测方法 (Instrument)
- 析构打印
- 第三方工具 (MLeaksFinder)