iOS性能分析小计

1.启动时间

  • 1.1 main启动前时间测量: 通过环境变量,直接打印
    run >> arguments >> environment >> +号

Name: DYLD_PRINT_STATISTICS
Value: 1

  • 1.2 main之后通过计时打印时间
    main.m:
CFAbsoluteTime startTime;

int main(int argc, char * argv[]) {
    @autoreleasepool {
        startTime = CFAbsoluteTimeGetCurrent();
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

delegate.m:

extern CFAbsoluteTime startTime;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    NSLog(@"startTime: %f s",CFAbsoluteTimeGetCurrent() - startTime);
    
    return YES;
}

2. 内存分析

  • 2.1 weak 与 assign

assign : __unsafe__unretained 引用的对象释放后,指针依然指向原地址
weak : 引用对象释放后,指针指向nil

  • 2.2 检测内存泄漏方法
  1. 静态分析
  2. 动态检测方法 (Instrument)
  3. 析构打印
  4. 第三方工具 (MLeaksFinder)

你可能感兴趣的:(iOS性能分析小计)