iOS 内存优化

1.main 函数启动前
减少动态库,合并一些动态库
减少objc类,分类的数量 ,减少selector数量

main函数至应用启动完成
耗时操作不要放在finisjLaunching方法中

动态库对启动时间的影响测试
http://www.cocochina.cm/ios/2016125/18179.html

图片.png

设置环境变量
DYLD_PRINTT_STATICTS
//打印main 启动时间

缩小包
在xcode中开启编译选项 write link map file

xcode - project-bulid setting 把write link map file 选项设为yes,并指定好存储位置。

LSUnusedResource/appcode查看未使用
texture
卡顿:FPS检测 YYkit

网络优化 nds

Shadow Path 。CoreAnimation 不得不先在后台得出你的图形并加好阴影然后才渲染,这开销是很大 的。使用 shadowPath 的话就避免了这个问题。使用 shadow path 的话 iOS 就不必每次都计算如何渲染, 它使用一个预先计算好的路径。但问题是自己计算 path 的话可能在某些 View 中比较困难,且每当 view 的 frame 变化的时候你都需要去 update shadow path.

[myView.layer setShadowPath:[[UIBezierPathbezierPathWithRect:myView.bounds] CGPath]

优化 Table View
正确使用 reuseIdentifier 来重用 cells 
尽量使所有的 view opaque,包括 cell 自身 
避免渐变,图片缩放
如果 cell 内现实的内容来自 web,使用异步加载,缓存请求结果
使用 shadowPath 来画阴影
减少 subviews 的数量
尽量不适用 cellForRowAtIndexPath:,如果你需要用到它,只用-一次然后缓存结果
使用正确的数据结构来存储数据
使用 rowHeight, sectionFooterHeight 和 sectionHeaderHeight 来设定固定的高,不要请求 delegate

查找内存泄漏工具
MLeaksFinder(腾讯团队出品)

你可能感兴趣的:(iOS 内存优化)