iOS 性能优化之教你使用Allocations分析内存分配

本文详细介绍了如何使用Xcode的Allocations工具进行iOS应用的内存性能分析,通过Demo App展示了内存分配的问题。文章讨论了Statistics、Generation、Call Tree等关键功能,并提供了内存问题的解决方案,特别关注了CoreImage导致的内存问题和图片缩放优化策略。
摘要由CSDN通过智能技术生成

Allocations

Allocations用来分析静态内存分配。

Demo项目

Demo App

Demo是一个简单的图片应用:首页只有一个简单的入口;次级页面会读取本地图片,加滤镜,然后按照瀑布流的方式显示出来;第三个页面提供大图显示;
在这里插入图片描述

运行代码:点击Photos -> 进入main -> 点击一张图,进入详情页 -> Pop直到回到第一个页面,重复这段操作,从XCode的内存模块发现两个问题。

  • 内存峰值过大
  • 退出界面后,内存没有降低。
    在这里插入图片描述

Statistics

菜单栏选择Product -> Profile,然后选择Allocations,运行项目,按照内存飙升的路径重复操作,采集到内存数据后停止运行。

默认看到的数据是Statistics(静态分析),点击mark 2可以更改数据分析模式。
在这里插入图片描述

为了更好的解决问题,有必要讲解下这里的内存相关概念:

  1. All Heap Allocation 堆上malloc分配的内存,不包过虚拟内存区域。
  2. All Anonymous VM
    匿名的虚拟内存区域。何为匿名呢?就是Allocations不知道是你哪些代码创建的内存,也就是说这里的内存你无法直接控制。像memory
    mapped file,CALayer back store等都会出现在这里。这里的内存有些是你需要优化的,有些不是。

表格的每一列的数据解释:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值