使用工具检测你的app:模拟器和真机测试 之一

在本章,你将学到下面这些内容:数组

  • 模拟器和真机测试环境的不一样。缓存

  • 内存管理是如何影响一个app的性能。性能优化

  • 检测app的工具和技术包括:网络

       1)基本的测试内存和性能的工具。app

       2)测试内存管理方面比较复杂的工具,好比内存泄露和bad access。ide

       3)测试计算过程当中性能方面比较复杂的工具,好比电池,文件加载,显示信息等。工具

  • 如何把你的程序分割成更小的部分,这样可以更简单的定位性能的瓶颈。性能


为了提高性能,你须要很是当心的运行测试来查看问题出如今哪里。为了执行一个有用的测试,你须要知道程序或代码段可能运行慢的缘由。测试


在一开始,你应该注意两种基本的选择:模拟器和真机环境,内存优化和性能优化之间的平衡。
优化


首先,你须要知道模拟器和真机环境的不一样。


模拟器和真机


iPhone应用性能的主要问题是他们运行在一个受限的,处理慢的环境中。iPhone模拟器开发环境比真机环境要更快;事实上,模拟器的环境跟在mac机器上运行它同样快。


所以,你可能会很是的惊讶,当你的程序在模拟器上运行比较快,而在真机上比较慢。我观察到不少人抱怨在手机网络上应用比较慢。在某些状况下确实如此。可是,在不少状况下app的性能可能会降低不少,因为代码实现自己,而不是网络的问题。所以,用基本的工具何标准环境仔细的测试你的app,会使得你的app在性能和用户体验上更加自信。


为了演示模拟器和真机的不一样,我在模拟器和真机上测试了一个程序,结果让人吃惊。

  • 在模拟器上花了0.5秒完成了主要的计算。

  • 在真机上一样的计算花了7秒。


程序很简单:我用两个数组中进行一个简单的测试,每一个数组有1000个元素。而后,代码循环这两个数组,发现两个数相同就打印“hello”。在真实环境中,你可能不须要在一个数组中处理1000个元素或你可能不会选择循环一个数组来找到相同的数。可是,这不是重点。我主要是为了演示真机比模拟器运行慢的多。


这引出了我在本书中将会屡次提到的一个很是重要的点:你老是须要在模拟器和真机上同时测试。那为何不仅是在真机上测试呢?由于模拟器有如下优势:

  • 在模拟器上运行比较快,这意味着能够减小开发者被耽误的时间。

  • 比较好测试内存泄露和内存分配问题。


内存和性能


内存和性能是不一样的。内存一般是指随机存储器,它表明了你使用了多少存储空间,以及你还剩多少存储空间。性能是指你运行一个指定的功能你的app有多快。


内存可能会对性能产生巨大的影响。当你的设备有更多的RAM和更多的存储空间,你能够预加载和缓存更多的数据。相比文件存储和网络,RAM访问是很是快的。经过在RAM上预加载和缓存更多的数据,在不少状况下你能够显著的提高你的程序性能。例如,若是你的app是一个游戏,须要加载不少图片,你能够在必要的时候预加载和显示他们。从RAM中加载比从文件中加载要快10倍。


可是,内存使用好并不意味着性能就好。有一些app不须要使用不少内存;所以,若是你只是优化内存,性能可能并不会提高。反之就很差了:一个app为了达到一个比较好的性能而使用了全部的内存,很快app就会把内存耗尽。


所以,你应该老是要对内存和运行时性能进行仔细的测试,确保在内存使用和运行时性能有一个好的权衡。

相关文章
相关标签/搜索