美文网首页
关于iOS内存的一些想法

关于iOS内存的一些想法

作者: 大王_小王 | 来源:发表于2016-03-03 17:55 被阅读130次

最近也在面试一些童鞋,问的频率比较高的问题之一就是内存
我觉得内存管理是ios制胜法宝之一,系统流畅度和美观,电池续航几乎构成了苹果全部优点。现在电池和美观随着安卓的崛起,已然没多少优势了。而流畅度则依然是安卓打不败iOS的门槛。

内存管理,不止于系统。还有APP的设计,需要我们iOS开发人员一起来维持流畅性。

我面试问内存管理,其实主要想听一下几方面:

1,内存管理的机制

不想谈MRC了,太老了,只ARC。ARC机制简单点说就是引用计数器。

强引用+1(其实创建的时候一般会创建一个强引用指针引用),弱引用不加。强引用每销毁一个就计数器减一,到0了就会自动找合适时机释放。释放目前大部分oc对象会自动释放,而涉及到C语言需要手动释放。

2,内存管理工具

instrument
---Leaks 内存泄露监测工具
---Allocations 内存分配工具
---Core Animation监测离屏渲染
---Zommbies僵尸对象的监测

3,造成内存暴增及内存高的缘由

一般内存暴增是因为图片或者视频等比较大的文件直接加载到了内存中,或者大图片滤镜处理等一些比较耗内存显存的操作。内存暴增会导致内存警告进而有可能被系统灭掉。

内存高的原因则有几种,主要指平缓增高。控制器太多,堆栈里不断加载新的控制器和数据,层层深入。某个界面动画循环,不断加载。图片较大,内存中图片较多。一般内存平缓增高不会涉及到内存警告。

当然除了循环引用循环调起某方法或操作。

4,内存释放,内存警告,内存泄露

内存释放一般有几种方式:把sd的缓存在内存里的图片缓存清空。将不在window上显示的view移除,以及在控制器销毁时将大的数据集合指针置nil。

内存泄露一般是野指针,指向不存在的对象,或者称之为内存区域。内存泄露一般为对象提前释放导致。查找原因则需要借助工具和打断点,有的藏的比较深的,需要一步一步的去找,没有什么特别的捷径。

5,内存优化-控件使用方面-重用-单例-懒加载等等

控件如果不涉及到交互,仅仅是用来显示,那么layer足够,轻量级
重用则是cell的重用-原理-NSSet做缓存池-当然也可以数组字典。-离屏放缓存池-即将进屏取cell
无限滚动轮播的imageview重用,定时器与手势的交互注意事项。
单例的使用-如果一个就能处理,那么整个app只创建一次。(话说,其实类就是一个单例)
懒加载-将不开始就显示的控件和不使用的集合等等进行懒加载,减少内存集中调用。
另控件及图片的使用,尽量减少控件和图片的透明效果,透明越多,需要渲染面积越大。

相关文章

  • 关于iOS内存的一些想法

    最近也在面试一些童鞋,问的频率比较高的问题之一就是内存我觉得内存管理是ios制胜法宝之一,系统流畅度和美观,电池续...

  • iOS性能优化

    iOS-Performance-Optimization 关于iOS 性能优化梳理: 基本工具、业务优化、内存优化...

  • iOS性能优化

    iOS-Performance-Optimization 关于iOS 性能优化梳理: 基本工具、业务优化、内存优化...

  • iOS必读 - 收藏集 - 掘金

    iOS 性能优化总结 - iOS - 掘金关于iOS 性能优化梳理: 基本工具、业务优化、内存优化、卡顿优化、布局...

  • iOS里的内存泄露

    前言 要讲关于iOS里的内存泄露,那就需要了解一下iOS的内存管理机制。现在基本上我们使用的是ARC机制,在iOS...

  • IOS的性能优化包括哪几点

    iOS性能优化总结 iOS性能优化总结。关于 iOS 性能优化梳理: 基本工具、业务优化、内存优化、卡顿优化、布局...

  • iOS之内存对齐

    关于iOS的内存对齐,首先我们思考一个问题,iOS的对象实例在内存中是如何分布的?带着这个问题我们往下看。 OC对...

  • 关于iOS审核4.3的一些想法。

    从2018年年初更新审核规则以来,严格来说是更新ai审核,App Store审核越来越严格,而且审核规则也在不断更...

  • [iOS]关于内存管理的一些总结

    前言 内存管理作为iOS最基础的存在,其重要性不言而喻.平时因为忙业务,遇到一些内存相关的问题,然后才有了这篇小结...

  • Xcode如何将ARC环境切换成非ARC环境——内存管理

    在iOS 5之后,利用Xcode创建的项目都是ARC环境的。我们如果想要调试关于内存管理的一些方法,那么我们需要将...

网友评论

      本文标题:关于iOS内存的一些想法

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