iOS程序内存泄露的检测
# 前言 Instruments是一个灵活又强大的工具,它可以让开发者跟踪一个或者多个进程,并检测收集的实时数据,使开发者更好地理解应用程序和操作系统的行为和性能。 本文将演示如何使用Instruments中的Allocation和Leaks工具,进行分析和修复应用程序中内存泄露的问题。 本文用OC语言来制造内存泄露案例
Allocation工具
Instruments中的Allocation工具,可以显示内存中的对象占用曲线,内存当前分配给了哪些对象,被分配内存的对象数量,以及由哪些函数进行对象的创建。因此我们可以使用这些信息,识别应用程序中的内存分配状况,从而定位应用程序内存效率低下的地方。
使用步骤
1.制造内存泄露
创建两个类:Person、Dog,让他们之间互相强引用。代码如下(示例):
Person.h
#import <Foundation/Foundation.h>
#import "Dog.h"
NS_ASSUME_NONNULL_BEGIN
@class Dog;
@interface Person : NSObject
@property (nonatomic, strong)NSString *name;
@property (nonatomic, strong)Dog *dog;
@end
NS_ASSUME_NONNULL_END
Person.m
#import "Person.h"
#import <objc/runtime.h>
@implementation Person
- (instancetype)init
{
self = [super init];
if (self) {
NSLog(@"Person对象创建,地址:%p",&self);
}
return self;
}