iPhone 内存泄露:Leaks 工具指引
2010-08-22 00:45:00 来源:WEB开发网最近常使用Instruments这个工具,我发现它对追踪游戏中的内存泄露非常有帮助。自从发现Instruments如此有用后,我就觉得写一篇文章介绍如何使用它来追踪内存泄露对其他人也会有帮助。
什么是内存泄露?我为什么要关心内存泄露?
…此段省略…
访问维基百科可以获得更多关于内存泄露的信息。
我如何知道内存泄露了?
一些内存泄露可以很容易地通过阅读代码来发现,另一些就要困难点了,这就是为什么需要Instruments 的原因。Instruments 有一个“Leaks”工具,它会准确地告诉你什么地方发生了内存泄露,以便你能定位和修复泄露问题。
例子程序
我写了一个例子程序,它有两个地方会发生内存泄露,一个在 Objective-C 视图控制器中,另一个在 C++ 类中。例程可以从这里获得。下边的代码是从例程里摘录的,包含了我们需要追踪内存泄露的代码。
// Leaky excerpts ? see GitHub for complete source
- (void)viewDidLoad {
[super viewDidLoad];
LeakyClass* myLeakyInstance = new LeakyClass();
delete myLeakyInstance;
mMyLeakyString = [[NSString alloc] initWithUTF8String:”I’m a leaky string.”];
[self doSomethingNow];
}
- (void) doSomethingNow
{
mMyLeakyString = [[NSString alloc] initWithUTF8String:
“Look, another alloc, but no release for first one!”];
}
// Leaky excerpts ? see GitHub for complete source
LeakyClass::LeakyClass()
{
mLeakedObject = new LeakedObject();
}
LeakyClass::~LeakyClass()
{
}
我会先在 Debug 模式编译InstrumentsTest,并在 iPhone 上运行。完成这步,我会启动 Instruments。
当你启动 Instruments,你可以从一堆 Instruments 工具里选择你需要的。在左手边选择 iPhone,在右手边的图标里双击“Leaks”工具:
- ››iphone图片拉伸的几种方法
- ››iphone正则表达式的简单使用
- ››iPhone开发Unresolved Symbols CAKeyframeAnimati...
- ››IPhone开发-“此证书是由未知颁发机构签名”解决方...
- ››IPhone开发-整合私钥和证书,生成.p12文件
- ››iPhone应用开发-UIPickerView选取器详解
- ››iphone 获取屏幕的宽度和高度
- ››iPhone读取工程包中的二进制文件
- ››iPhone新手机 不挂YouTube APP
- ››iPhone 获取指定格式的时间和日期
- ››iPhone版PPS走进生活 观赏体验媲美PC版
- ››iPhone两种不同的应用程序:两种方法的哲学思想
更多精彩
赞助商链接