文档详情

(25条提高iOSApp性能的建议和技巧.doc

发布:2017-01-22约1.56万字共12页下载文档
文本预览下载声明
当我们开发iOS应用时,好的性能对我们的App来说是很重要的。你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢就会让你得到不好的评论。 ?????然而,由于IOS设备的限制有时很难工作得很正确。我们开发时有很多需要我们记住这些容易忘记的决定对性能的影响。 ?????这是为什么我写这篇文章的原因。这篇文章用备忘录的形式集合了25个技巧和诀窍可以用来提高你的app性能。所以耐心的阅读来给你未来的App一个很不错的提高。 Note:在优化代码之前,必须保证有个需要解决的问题!不要陷入pre-optimizing(预优化)你的代码。勤 用Instruments分析你的代码,发现任何一个需要提高的地方。Matt Galloway写了一个使用Instruments优化代码的的教程 以下这些技巧分为三个不同那个的级别---基础,中级,高级。 基础 这些技巧你要总是想着实现在你开发的App中。 ???1.?用ARC去管理内存(Use ARC to Manage Memory) ??2.适当的地方使用reuseIdentifier(Use a reuseIdentifier Where Appropriate) ??3.尽可能设置视图为不透明(Set View as Opaque When Possible) ??4.避免臃肿的XIBs(Avoid Fat XiBs) ??5.不要阻塞主进程(Dont Block the Main Thread) ??6.调整图像视图中的图像尺寸(Size Images to Image Views) ??7.选择正确集合(Choose the Correct Collection) ??8.启用Gzip压缩(Enable GZIP Compression) ? 中级 这些技巧是当你遇到更复杂的情况的时候使用。 ???9. 重用和延迟加载视图(Reuse and Lazy Load Views) ??10.缓存,缓存,缓存(Cache,Cache,Cache) ??11.考虑绘图(Consider Drawing) ??12.处理内存警告(Handle Memory Warnings) ??13.重用大开销对象(Reuse Expensive Objects) ??14.使用精灵表(Use Sprite Sheets ) ??15.避免重复处理数据(Avoid Re-Processing Data) ??16.选择正确的数据格式(Choose the Right Data Format) ??17.适当的设置背景图片(Set ?Background Images Appropriately) ??18.减少你的网络占用(Reduce Your Web Footprint) ? ??19.设置阴影路径(Set the Shadow Path ) ??20.你的表格视图Optimize Your Table Views) ??21.选择正确的数据存储方式(Choose Correct Data Storage Option) ? 高级 这些技巧你应该只在你很积极认为它们能解决这个问题,而且你觉得用它们很舒适的时候使用。 ??22.加速启动时间(Speed up Launch Time ) ??23.使用自动释放池(Use AutoRelease Pool) ??24.缓存图像(Cache Images-Or not?) ??25.尽可能避免日期格式化器(Avoid Date Formatters Where Possible) ? 没有其他的,一起去看看这些技巧吧! 基础的性能提升 1)用ARC去管理内存 ??ARC是伴随IOS5 一起发布的,它用来消除常见的的内存泄漏。 ??ARC是Automatic Reference Counting的缩写。它自动管理你代码中的retain/release循环,这样你就不必手动做这事儿了。 ??下面这段代码展示了创建一个view的常用代码 1?UIView *view =[[UIView alloc] init]; 2?//... 3?[self.view addSubview:view]; 4?[view release]; ??这里极其容易忘记在代码结束的地方调用release,ARC将会自动的,底层的为你做这些工作。 ??除了帮助你你避免内存泄漏,ARC还能保证对象不再使用时立马被回收来提高你的性能。你应该在你的工程里多用ARC。 这里是一些学习更多关于ARC的非常棒的资源 ??值得注意的是ARC不能消除所有的内存泄漏。你依然有可能内存泄漏,这主要可能是由于blocks(块),引用循环,CoreFoundation对象管理不善(通常是C结构体,或者是确实很糟
显示全部
相似文档