iOS应用程序性能的提示和技巧(中)
作者:网络转载 发布时间:[ 2013/5/10 10:36:51 ] 推荐标签:
14) 使用Sprite Sheets
使用sprite sheets
你是一个游戏开发者吗?是的话那么sprite sheets是佳选择之一。使用Sprite sheets跟常用的绘制方法比起来,绘制更快,并且消耗更少的内存。
下面是两个非常不错的sprite sheets教程:
如何在Cocos2D中使用动画和Sprite Sheets
如何在Cocos2D中使用纹理包(Texture Packer)和像素格式来创建并优化Sprite Sheets
第二个教程详细的介绍了像素格式——在游戏中可以衡量性能的影响。
如果你还不熟悉sprite sheets,那么可以看看这里的介绍:SpriteSheets – 视频, Part 1and Part 2. 这两个视频的作者是Andreas Löw, 他是纹理包(Texture Packer)的创建者, 纹理包是创建sprite sheets的重要工具。
除了使用sprite sheets外,这里还介绍了一些用于游戏开发中的技巧,例如,如果你有很多sprite(比如射击类游戏中),那么可以重用sprite,而不用每次都创建sprite。
15) 避免重新处理数据
许多程序都需要从远程服务器中获取数据,以满足程序的需求。这些数据一般是JSON或XML格式。在请求和接收数据时,使用相同的数据结构非常重要。
为什么呢?在内存中把数据转换为适合程序的数据格式是需要付出额外代价的。
例如,如果你需要在table view中显示一些数据,那么请求和接收的数据格式好是数组格式的,这样可以避免一些中间操作——将数据转换为适合程序使用的数据结构。
类似的,如果程序是根据键来访问具体的值,那么好请求和接收一个键/值对字典。
在第一时间获得的数据是所需要格式的,可以避免将数据转换为适合程序的数据格式带来的额外代价。
16) 选择正确的数据格式
选择正确的数据格式
将数据从程序传到网络服务器中有多种方法,其中使用的数据格式基本都是JSON和XML。你需要做的是在程序中选择正确的数据格式。
JSON的解析速度非常快,并且要比XML小得多,也意味着只需要传输更少数据。并且在iOS5之后,已经有内置的JSON反序列化API了,所以使用JSON是很容易的。
不过XML也有它自己的优势:如果使用SAX方法来解析XML,那么可以边读XML边解析,并不用等到全部的XML获取到了才开始解析,这与JSON是不同的。当处理大量数据时,这种方法可以提升性能并减少内存的消耗。
17) 设置适当的背景图片
在iOS编码中,跟别的许多东西类似,这里也有两种方法来给view设置一个背景图片:
可以使用UIColor的colorWithPatternImge方法来创建一个颜色,并将这个颜色设置为view的背景颜色。
可以给view添加一个UIImageView子视图。
如果你有一个全尺寸的背景图片,那么应该使用UIImageView,因为UIColor的colorWithPatternImge方法是用来创建小图片的——该图片会被重复使用。此时使用UIImageView会节省很多内存。
// You could also achieve the same result in Interface BuilderUIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background"]];[self.view addSubview:backgroundView];
不过,如果你计划用小图片当做背景,那么应该使用UIColor的colorWithPatternImge方法。这种情况下绘制速度会很快,并且不会消耗大量的内存。
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background"]];
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11