iOS 性能优化

要知道作为一名开发人员,性能优化思维是必备的:

产品是为了取悦用户才有存在价值。
设备是为了方便用户才有其价值。
要做到更好。
用户的体验质量才是最实际的。
关注能带来最大收益的方面。

iOS开发用到的性能优化的工具最典型的非Instruments莫属了。

Instruments
默认情况下,Instruments是在Release模式下编译构建的。这可能会表现跟Debug模式完全不同的性能,但我们可以修改成Debug模式就行了。

模拟器和设备的性能可能完全不同,大多数情况,只需要在设备上进行性能分析就行了。

Instruments经常在为当前应用查找符号时出现麻烦。通常需要通过File->Re->Symbolicate Document再次符号化文档。

内存问题

我做过C++项目之前也是内存问题,不管做什么方面的开发,内存泄露,溢出等都是很常见也是我们最重视的问题,下面看看iOS开发如何来解决内存问题。
这里写图片描述
我们可以实时看到内存的变换,会弹出一个框,问我们是否转换模式,选择是即可。
这里写图片描述
打开了我们的工具
这里写图片描述

1、这里控制记录过程,点击红色的”记录”按钮可以停止或开始当前正在分析的app(在记录和停止按钮之间切换),暂停键,如你所想,暂停当前正在运行的app。

2、这里是执行计时器(run timer),计时器记录着正在分析的app执行了多长时间、执行了多少次。如果你使用记录控制按钮来停止你的app,然后重启,这将创建一个新的运行记录,同时会显示”Run 2 of 2”。

3、这里被称作路径(track),就你选择的Time Profiler工具而言,因为只有一个工具,所以这里只有一条路径,关于这里显示的图标的详情,一会你就会在接下来的教程中了解更多。

4、这里是详情面板,展示的是你正在使用的工具的主要信息。就现在而言,这里展示的是最”笨重(hottest)”的方法–换句话说,占用CPU时间最长的方法。点击上方的bar会看到Call Tree(左手边的那个)并选中Sample List,然后你会看到数据的不同视图。视图展示了每一个示例。点击其中几个,你会在Extended Detail inspector中看到被捕获的堆栈跟踪。

5、这里是检查器(inspector)面板,一共有三个检查器:record setting(记录设置),display setting(展示设置),还有extends detail(扩展详情)。一会你将了解更多关于这里面的一些选项。

Note:

Leaks工具智慧检查未引用的内存,而不会检查循环保留,而后者是常见的内存问题。它也不会检测没有成功释放的内存。不管是Leaks还是Allocations只会告诉我们那些地方分配了内存,但是分配的内存不一定是内存泄露的地方。

CPU问题
其中常用的有用来检测内存泄露的Leaks和查看CPU消耗情况的Time Profiler。下面介绍查看CPU使用情况的Time Profiler

这里写图片描述

这里写图片描述
选择 Detail -> Call Tree 表示查看整个调用过程有了上面的基础知识就可以对App的CPU消耗情况进行实时检测了。

常见的对CPU消耗过高的操作 加载图片两种不同方式在相同时间内的CPU消耗。

算法优化是性能局部优化的首选, 并常采用各种性能监控软件来度量CPU时间、内存占用率、函数调用次数以问题定位,然后实施各种调优方法,如优化循环、利用空间换时间、采用合适的数据结构等。但是算法本身的优化只能够帮助大家消除一些明显的编程细节引起的瓶颈,尤其单单通过算法优化的手段还不能完全解决性能问题,且具有非常大的难度。

运行环境与资源包括各种软硬件平台,硬件环境包括CPU、内存、磁盘以及网络等。最简单且最省事的调优方法是优化硬件资源,使用快速计算资源代替慢速计算资源,提升资源的计算能力。

我们还可以用Instruments进行disk和Network的分析。

这个博客对iOS常见性能列举挺详细,分享一下:
http://blog.csdn.net/ylgwhyh/article/details/52073036

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值