关于iOS内存的一些想法

最近也在面试一些童鞋,问的频率比较高的问题之一就是内存
我觉得内存管理是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只创建一次。(话说,其实类就是一个单例)
懒加载-将不开始就显示的控件和不使用的集合等等进行懒加载,减少内存集中调用。
另控件及图片的使用,尽量减少控件和图片的透明效果,透明越多,需要渲染面积越大。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,114评论 25 707
  • 内存管理 简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与a...
    丶逐渐阅读 1,964评论 1 16
  • 女孩喜欢上一个男孩,但他不敢和男孩说,女孩和男孩是同学,因为一次女孩在班级里干活时从高处落下,男孩把她接住了,女孩...
    红豆印迹阅读 267评论 0 0
  • 有一句古话说得好,“士为知己者死,女为悦己者容”。一般情况下,以前我是很少将他们连起来用的。因为你仔细想想的话,高...
    紫狐挽诗阅读 527评论 0 0
  • 好几天没写感赏日记了,周末去上海开会,感触颇多,感觉上海变化真快,生活很便利,越来越喜欢上海的好了,去看了老同学乔...
    崔海宏阅读 163评论 0 0