Instrumentsios 进阶iOS编程

iOS 底层原理39:Instruments系列(五)Leaks

2022-09-23  本文已影响0人  Style_月月

iOS 底层原理 文章汇总

引言

iOS 5.0之后apple引入了Xcode编译器特性ARC(Automatic Reference Counting,自动引用计数)来帮助开发者管理内存,但为了追求app的高性能与减少安装包大小,工作中很多时候需要我们手动管理内存。再牛的开发者也不能保证自己写的code 100%没有内存泄露,出现内存泄露不可怕,可怕的是我们时间与精力花了大把,但内存泄露依旧没解决,即影响了工作效率也影响自己的心情。

那么我们如何检测程序的内存泄漏呢?主要有以下两种方式:

静态分析(Leaks)

动态检测(Leaks)

Leaks 介绍

从苹果官方文档可知,一个app的内存主要分3类

Leaks 工具

在Leaks中主要包含 4个统计项


Instruments_05_01.png

在 Leaks下方包含三个选项


Instruments_05_02.png

Statistics 统计项

主要包含6个统计字段,分别对应的含义如下


Instruments_05_03.png

Call Trees 统计项

这个功能是将列表展示类型切换成调用树的形式,如下所示,有3个统计项:


Call Trees 统计项

对应的在Call Trees下方还有三个配置项,下面分别来介绍

Allocations List 统计项

Instruments_05_06.png

Generations 统计项

在Allocation中,可以通过对每个动作的前后进行Mark Generation,用来对比内存的增加,可以定位到内存增加的具体方法和代码所在位置。其中有4列统计项


Instruments_05_07.png

使用

使用主要分两部分

检测内存泄漏

查看内存泄漏引用图

将Call Tree选项改为Cycles & Roots 即可查看,如下所示


Instruments_05_12.png

参考文章

XCode内存泄漏检测工具介绍-Instruments之Leaks
使用Instruments定位iOS应用的Memory Leaks
Xcode Instruments Leak解决内存泄漏问题
# iOS Instruments之Leaks
### Xcode Instruments系列之Leaks使用教程
# iOS开发之非常精准内存泄露检测工具
# Find memory leaks

上一篇 下一篇

猜你喜欢

热点阅读