美文网首页ios常用功能
iOS-Instruments之Leaks

iOS-Instruments之Leaks

作者: HCL黄 | 来源:发表于2020-06-28 14:59 被阅读0次

一、说明

Leaks是用来检测内存泄露

二、如何打开

C32EA601-68D0-424E-B3DA-F1ED8942A4B3.png
859F0624-9F1E-43A0-B38E-2AEA9BAE5082.png

三、尽量使用真机调试,并且使用release配置,这样比较准确点。下面举个简单的例子

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"首页";
    
    AModel *a1 = [[AModel alloc] init];
    AModel *a2 = [[AModel alloc] init];
    
    a1.target = a2;
    a2.target = a1;
}
C0181E62-9EAF-453F-A0C7-5BB1D52A3FE9.png
82C8E480-DF66-4EE4-9A88-27E35CEB802E.png
  • 1、可以发现出现了红色的x,说明有地方内存泄露了
  • 2、下面“田”字方格点开,选中Call Tree


    E60E8EFA-7BAC-4015-83F1-9CE446B53662.png
  • 3、勾选 Invert Call Tree 或 Hide System Libraries,过滤显示数据


    E316D832-1065-43B3-BE8D-0A5A7B0784AE.png
Call Tree各个选项的介绍:

Separate by Thread: 每个线程应该分开考虑
Invert Call Tree: 从上到下跟踪堆栈
Hide System Libraries:隐藏系统库文件。过滤掉各种系统调用,只显示自己的代码调用
Flattern Recursion:拼合递归。将同一递归函数产生的多条堆栈(因为递归函数会调用自己)合并为一条

  • 4、双击内存泄露的位置,就可以跳转到对应的代码了进行优化修改了


    043C6DC7-F532-4402-8051-04EE33C7C5C1.png
    79041881-8C07-4E82-95EC-61C0F9533D39.png

相关文章

  • iOS-Instruments之Leaks

    一、说明 Leaks是用来检测内存泄露 二、如何打开 三、尽量使用真机调试,并且使用release配置,这样比较准...

  • iOS性能优化之Leaks动态分析

    iOS性能优化之Leaks动态分析 Instruments-Leaks有很多跟踪模块可以动态分析和跟踪内存, CP...

  • Instruments之Leaks

    1. 介绍 1. 进程 进程是系统资源分配的最小单位 进程结构 进程通信 pipe管道fifo有名管道内存共享映射...

  • Instruments之Leaks

    Leaks工具的作用 Leaks instrument 工具检查进程堆泄露的内存。你可以使用该 instrumen...

  • XCode 之Leaks

    调试需要的配置:

  • Instrument之Leaks

    这篇介绍Xcode的Instrument之Leaks我们经常遇到的内存泄露有 对象初始化之后没有release,这...

  • iOS-Instruments之Time Profiler

    一、说明 Time Profiler帮助我们分析代码的执行时间,找出导致程序变慢的原因,告诉我们“时间都去哪儿了?...

  • SnapKit Leaks in Instruments

    Memery Leaks Recently, I found some memory leaks from Sna...

  • Leaks

    Leaks 可以检测app内存泄露情况:

  • app 内存优化笔记

    阶段 1. Leaks 处理一 ??????2. Leaks 处理二 ??????3. 其他处理 ?????? 简...

网友评论

    本文标题:iOS-Instruments之Leaks

    本文链接:https://www.haomeiwen.com/subject/kqyifktx.html