使用内存管理工具


简介

iOS下内存管理的基本思想就是引用计数,通过对象的引用计数来对内存对象的生命周期进行控制。具体到编程时间方面,主要有两种方式:

1:MRR(manual retain-release),人工引用计数,对象的生成、销毁、引用计数的变化都是由开发人员来完成。

2:ARC(Automatic Reference Counting),自动引用计数,只负责对象的生成,其他过程开发人员不再需要关心其销毁,使用方式类似于垃圾回收,但其实质还是引用计数。

面临的问题

根据苹果说明文档,面临的两个主要问题是:

释放或覆盖的数据仍然在使用。这将造成内存损坏,通常在应用程序崩溃,或者更糟,损坏用户数据。

不释放不再使用的数据会导致内存泄漏。分配的内存,内存泄漏不会释放,即使它从来没有再次使用。泄漏会导致应用程序的内存使用量日益增加,这反过来又可能会导致系统性能较差或死机。

内存管理规则

我们创建自己的对象,当他们不再需要的时候,释放他们。

保留需要使用的对象。如果没有必要必须释放这些对象。

不要释放我们没有拥有的对象。

可以用Xcode工具仪器的帮助下分析内存的使用情况。它包括的工具有活动监视器,分配,泄漏,僵尸等

分析内存分配的步骤

  1. 打开一个现有的应用程序。

  2. 选择产品,配置文件如下所示

mm_Profile

3.在以下界面中选择 Allocations 和 Profile。

mm_ProfileSelect

  1. 我们可以看到不同对象的内存使用情况

  2. 你可以切换视图控制器查看内存是否释放。

mm_Instruments_Allocations

6.同样我们可以使用 Activity Monitor 来查看内存在应用程序中的分配的情况。

mm_Instruments_ActivityMonitor

  1. 这些工具可以帮助我们了解内存的使用情况及在什么地方可能发生泄漏。

若文章对你有帮助,可以点赞或打赏支持我们。发布者:lyh会员,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/%e4%bd%bf%e7%94%a8%e5%86%85%e5%ad%98%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7/

(0)
lyhlyh会员认证作者
上一篇 2023年 4月 1日 下午9:19
下一篇 2023年 4月 1日 下午9:21

相关推荐

  • Git 教程

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本…

    2024年 4月 30日
  • init

    文章目录init补充说明语法选项参数实例 init init进程是所有Linux进程的父进程 补充说明 init命令 是Linux下的进程初始化工具,init进程是所有Linux进…

    入门教程 2023年 12月 19日
  • 接口(二)

    文章目录接口实现接口:指针接受者与值接受者实现多个接口接口的嵌套接口的零值 接口 上一节:第十八篇 接口一下一节:第二十篇 并发入门 欢迎来到第 19 个教程。接口共有两个教程,这…

    2023年 12月 5日
  • SQL语法

    文章目录数据库表解析SQL 语句请记住…SQL 语句后面的分号?一些最重要的 SQL 命令 数据库表 一个数据库通常包含一个或多个表。每个表有一个名字标识(例如:&qu…

    2023年 5月 28日
  • slabtop

    文章目录slabtop补充说明语法选项知识扩展实例 slabtop 实时显示内核slab内存缓存信息 补充说明 slabtop命令 以实时的方式显示内核“slab”缓冲区的细节信息…

    入门教程 2024年 3月 5日
  • csplit

    文章目录csplit补充说明语法选项参数实例 csplit 将一个大文件分割成小的碎片文件 补充说明 csplit命令 用于将一个大文件分割成小的碎片,并且将分割后的每个碎片保存成…

    入门教程 2023年 12月 7日
  • quota

    文章目录quota补充说明语法选项参数实例 quota 显示磁盘已使用的空间与限制 补充说明 quota命令 用于显示用户或者工作组的磁盘配额信息。输出信息包括磁盘使用和配额限制。…

    入门教程 2024年 3月 1日
  • squid

    文章目录squid补充说明语法选项 squid squid服务器守护进程 补充说明 squid命令 高性能的Web客户端代理缓存服务器套件“squid”的服务器守护进程。 语法 s…

    入门教程 2024年 3月 5日
  • 结构体

    文章目录结构体什么是结构体?结构体的声明定义具名结构体变量定义匿名结构体变量结构体变量的 0 值访问结构体中的字段结构体的指针匿名字段嵌套结构体(Nested Structs)提升…

    2023年 12月 5日
  • time

    文章目录time补充说明语法参数实例软件包软件包的语法软件包指令参数软件包实例参考资料 time 统计给定命令所花费的总时间 补充说明 time 命令是用来确定一个给定的命令需要运…

    入门教程 2024年 3月 11日
Translate »