ios 内存深度优化_iOS性能优化之内存(memory)优化

本文总结了在iOS应用中进行内存优化的经验,包括使用Instruments、MLeaksFinder和Memory Graph等工具,以及分析了不合理API使用、图片处理、第三方库等问题导致的内存占用过高,并提供了具体优化措施,如避免使用[UIImage imageNamed:]加载大图,优化9片图机制,使用CAShapeLayer替代drawRect:等。
摘要由CSDN通过智能技术生成

近期在工作中,对APP进行了内存占用优化,减少了不少内存占用,在此将经验进行总结和分享,也欢迎大家进行交流。

在优化的过程中,主要使用了以下工具:

Instruments和Allocations

这个工具能显示出应用的实际内存占用,并可以按大小进行排序。我们只要找出那些占用高的,分析其原因,找到相应的解决办法。

MLeaksFinder

腾讯开源的一款内存泄漏查找工具,可以在使用APP的过程中,即时的提醒发生了内存泄漏。

Xcode的Memory Graph

这款工具在查找内存泄漏方面,可以作为MLeaksFinder的补充,用于分析对象之间的循环引用关系。

另外通过分析某个时刻的Live Objects,可以分析出哪些是不合理的。

总结下来,主要有几方面的原因导致内存占用高:

使用了不合理的API

网络下载的图片过大

第三方库的缓存机制

Masonry布局框架

没必要常驻内存的对象,实现为常驻内存

数据模型中冗余的字段

内存泄漏

下面从这几方面展开讨论。

1.使用了不合理的API

1.1 对于仅使用一次或是使用频率很低的大图片资源,使用了[UIImage imageNamed:]方法进行加载

图片的加载,有两种方式,一种是[UIImage imageNamed:],加载后系统会进行缓存,且没有API能够进行清理;另一种是[UIImage imageWithContentsOfFile:]或[[UIImage alloc] in

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值