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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容