美文网首页
IOS内存管理与头疼的内存泄漏问题的探索

IOS内存管理与头疼的内存泄漏问题的探索

作者: 小白奔哥 | 来源:发表于2021-04-29 14:34 被阅读0次

    一 、数据到底存在那里?

    iOS的数据是存储在堆和栈中,内存管理它管理的是堆上的内存,栈上内存不需要我们去管理,因为栈里面存储的数据生命周期一旦消失内存就会自动释放(编辑器自动分配和释放)

    iOS很早之前是采用MRC手动管理内存(机器码,程序员手动控制内存分配与释放),后面统一用ARC来管理内存(系统自动分配)

    便于理解MRC:

    01

    二、内存泄漏

    相关的两个概念:

    a.内存泄漏 ----- 所占内存用完了未释放。 一两次内存泄漏可以忽略,长时间的累积就会导致程序crash。

    b.内存溢出 -----  需要的内存过大,超过了手机内存的负载能力。

    xcode里面的编译警告⚠️往往会造成内存泄漏,能解决的警告就解决掉。

    上线之前的排查手段:

    1.静态分析(Analyze),入口:Xcode-Product->Analyze,主要分析4种问题

    a.逻辑错误。访问空指针或未初始化的变量等。

    b.内存管理错误。如内存泄漏等。

    c.声明错误。从未使用过的变量。

    d.Api调用错误。未包含使用的库或者框架。

    分析完之后把三方库折叠起来(三方库有蓝色感叹号

    02

    如果是手动倒入的,可以解决掉;pods导入的忽略),然后看自己项目的错误

    结果如图,有7种类型的错误:

    03

    所遇到的实际问题总结:

    静态分析Analyze错误情况汇总

    2.动态分析

    1.Xcode->Product->Profile

    2.选择Leaks,点击Choose,如图:

    04

    常见的问题汇总

    对应的相关文章

    相关文章

      网友评论

          本文标题:IOS内存管理与头疼的内存泄漏问题的探索

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