温馨提示:
在项目需求未确定之前(不要一开始就给自己挖坑),请按正常的代码去写,等需求确定了,对有明显性能问题,进行局部优化
在谈性能优化之前先聊一下代码如何写,我说的代码如何写,并不是说代码如何优雅的写,对象如何创建,而是到底是用纯代码去写还是用Storyboard/Xib 去写
这个可参考之前写的一些个人观点:http://www.jianshu.com/p/a3d79f6f5cf7
对于Storyboard/Xib,有些开发者就会说:存在既有理由,苹果都建议你去用,难道你比苹果开发人还diao吗?
对于这样 我确实也无言以对,确实没人家厉害,还在那BB啥呢
但话说回来,苹果只是说用Storyboard/Xib能很好的提升开发效率,但并没有说可以提升团队的合作开发及后期项目的健壮、维护成本和性能等
所以还是那句话,用代码写界面,其实更多的问题应该是:“老板说要一个月给我做完,如何用代码哪有那么多时间,先完成要求再说,老板又不关心你是怎么写,等
以后再改” 这个以后恐怕是以后都不会再改了,除非是实在有问题
这个要跟领导说明为什么要这样开发,以及为什么周期会比较长。 说的领导真会听一样 ( ꒪⌓꒪) [/擦汗]。
下面看看其他的资料关于Storyboard/Xib 和 Autolayout 对性能的影响
1. 创建对象的时候,CPU会分配内存、调整属性等会消耗CPU资源
而通过Storyboard/Xib创建对象比直接通过代码创建要消耗更多的资源
简而言之:纯代码开发
虽然iPhone的性能很好,这么一点的消耗,可以忽略,但是积少成多,既然要优化,那就先从这步开始吧
2. Autolayout对性能的影响
Autolayout对复杂的界面会产生严重的性能问题,可以参考http://pilky.me/36/
随便截几张图,让大家感受一下
![](https://img.haomeiwen.com/i1825093/174c0e8d597af49b.png)
![](https://img.haomeiwen.com/i1825093/07f51d87162afc0e.png)
![](https://img.haomeiwen.com/i1825093/70691d9717c688dd.png)
我个人简单的理解
set frame 好像是这样 1+1+1+1 = 4
而Autolayout 这样 1*2+2*3-3*1-1*1 = 4 因为会有增加很多约束所以复杂度要比直接set frame要大
简言之:用最原始的方法 set frame ,也不要用第三方的自动布局框架
和上面的一样,少量的并不能感受到性能有多少优化,还是那句话:积少成多!!!
言归正传:
上面啰嗦那么多最后的总结:用纯代码开发项目,使用set frame调整位置, 是提高性能的一个重要方面
显然用纯代码会使开发周期变长,但从整体的开发周期,其实时间会更节省,因为需求会经常变动(你懂的),纯代码在应对需求变动上有很大优势,另一个方面,如果你是个老司机,就会对代码有所追求,并不会满足UI层面(大家都是从新手村出来的,所以都懂),做为老司机更多的是会想让代码的简洁和易懂(有些人总认为代码写的简单易懂显示不出来自己的水平,其实真正的高人,是让不会开发的人都能看懂你的代码,这是一种境界),当别人接手项目,不需要写一堆项目文档等等,只需要给我一首歌的时间,教你快速上手这个项目😄
一. 为什么会出现性能问题,怎么体现性能的问题
从用户体验来看,最直观就是界面卡顿、UI阻塞、响应慢等
大体上的原因可总结:CPU、GPU资源严重消耗,主线程操作不当导致UI阻塞,代码使用不当(最经典tableview的cell缓存池的正确使用),其他逻辑问题等
网友评论