这几天一直在Starling引擎的基础上完善游戏逻辑部分,但是当把所有资源铺在stage3D上后发现这帧率不像是一个拥有硬件加速所应该有的样子。电脑帧率只有20帧,更别说iPad2上的了。一般而言iPad2和PC(4核3.2GHZ 4G)相比,帧率一般要少一半。
于是便进入痛苦的代码优化时间。花了整整一个下午,寻找并且优化了两个地方。
其一就是对于addChild和removeChild这两个函数的频繁调用。我的频繁是每一帧都在大量的调用,大量指的是一个MovieClip下的所有显示对象(这里的MovieClip早已不是ActionScript3所提供的2DMovieClip,而是继承自Starling的Sprite自制的MovieClip,使其拥有3D加速功能)。频繁的调用addChild和removeChild会很影响性能。我把这部分的代码优化后,帧率从20帧提高到了30帧。但是还不够,如果PC上运行是30帧iPad2仍然性能很低。在接下来的几个小时里我发现几个赋值语句的执行时间特别长。我将它们注释之后发现帧率突然稳定在60帧。这让我很奇怪。经过多次实验发现ActionScript3对于XML的操作效率是比较低的。比如XML.attribute(),我后来把XML全部进行预处理,就是在loading阶段便把XML所描述的数据结构使用Object来替代。让缓慢的操作全部轰到loading阶段并且只执行一次。
经过这两段代码的优化后发现PC帧率达到58fps,iPad2帧率达到26帧。基本满足游戏的需要。
另外iPad1的性能是iPad2的一半。适应Air3.2在iPad1上稍微做复杂点的游戏很容易出现内存爆掉的情况。
总体感觉ActionScript其实比C++这种语言更需要深厚的基本功,否则制作对性能要求高的东西,在优化阶段会很摸不到头脑。
分享到:
相关推荐
《软件工程实用教程(第2版)-第3章-习题与参考答案-2012-3-15.pdf》这一章节主要涵盖了软件需求分析的核心概念和方法。需求分析是软件开发过程中的关键环节,其主要任务是确定软件系统需要完成的功能,即“做什么”,...
《USB Battery Charging 1.2 规范及2012年3月15日修订版解析》 USB Battery Charging (BC1.2) 是USB Implementers Forum (USB-IF)下设的BC小组制定的一项关键协议,其目标是统一和优化电池充电的标准。这个协议建立...
- **数字报纸(不含手机报):** 收入15.9亿元。 - **博客:** 收入40亿元。 - **在线音乐:** 收入18.2亿元。 - **网络动漫:** 收入10.36亿元。 - **手机出版(含手机彩铃、铃音、手机游戏等):** 收入486.5亿元...
3. **流程控制**:包括条件语句(if、else、switch)、循环结构(for、while、do-while、foreach),以及跳转语句(break、continue)。 4. **函数和类**:PHP支持自定义函数,可以定义全局函数和类方法。面向对象...
该标准的发布机构是国际标准化组织(ISO),发布时间为2012年10月15日。 该标准的主要内容是规定机器安全相关控制系统的安全部分的验证要求和方法,以确保机器的安全运行。该标准适用于机器制造商、机器操作员、...
这个软件包的名字"ntfs-3g_ntfsprogs-2012.1.15.tar.gz"暗示了我们正在处理的是2012年1月15日版本的NTFS-3G和ntfsprogs的源代码。 安装和配置NTFS-3G的过程中,需要特别注意的一点是,为了正确处理中文字符,我们...
ISO-IEC 14443-3-2011.PDF是2011-04-15公布的,是14443-3第2版。截止2014.05.27, ISO又公布了几个14443-3更新。 ISO/IEC 14443-3:2011/Amd 1:2011, Electromagnetic disturbance handling and single-size unique ...
本文将详细解析"php+java开发部署环境配置2012-11-15"这个主题,包括核心概念、步骤以及可能遇到的问题。 首先,我们要明白PHP和Java是两种不同的编程语言,它们各自有着独立的运行环境。PHP常用于服务器端脚本,...
这个2012年10月15日发布的版本号为1307的SwfTools,包含了多种实用工具,使得用户能够方便地在不同格式之间进行文档转换,尤其适用于创建类似百度文库的在线预览功能。 1. **PDF2SWF**:这个工具允许用户将PDF文档...
2012-06-11 15:37 3,956 移通短信接口Web(vs2008 asp.net c#源码).rar 2012-06-11 15:47 441,600 第五章_能力风暴智能机器人编程实例.pdf 2012-06-11 15:16 386,555 纯VB编写的水果机游戏源码.rar 2012-06-11 15:35 ...
3.3.6.1000 2012-03-15 本次更新解决了下列问题: [主框架] * 某些情况下收藏栏向右箭头的下拉菜单冗余绘制 * 侧边栏图标拖动时出现空白占位符 * 某些情况下侧边栏的"查看更多应用"的按钮无效 * 添加收藏时目录过多...
输入开始日期、结束日期,就会显示两个日期之间相差的年、月、日、周、时、分,比如2012-1-26与2012-3-15之间相隔0年,2个月,50天等;同时会显示相应公历对应的阴历、节假日、节气等信息。 每次打开工具,开始日期...
15. `b *= a+1` 将 `b` 的值更新为 `b * (a+1)`,即 `6 * 6`,结果是 `36`。 16. `(s=c1==c2)||(t=c3>c4)` 中,`(c1==c2)` 为 `false`,`(c3>c4)` 为 `true`,因此 `s` 被赋值为 `1`,而 `t` 被赋值为 `1`。 17. `...
15. 化学物质性质: - 纤维素、淀粉都是高分子化合物。 - 浓硝酸能使皮肤变黄,是由于蛋白质发生了颜色反应。 - 蛋白质主要由C、H、O、N等元素组成,不是只有C、H、O。 - 油脂在碱性条件下水解生成甘油和肥皂。 ...
3. 劳动年龄人口:15岁至64岁的人口数量,是计算老年抚养比的基础。 4. 老年人口:65岁及以上的老年人口数量。 5. 相关统计数据:可能还包括人口总数、出生率、死亡率等人口学指标。 6. 地区划分:数据可能按省份...
1. 产品经理大会:文档提到的“2012-9-15赢时代北京产品经理大会”指出了这是一次针对产品经理的专业会议。产品经理是负责指导产品从概念到市场的全周期的关键角色。会议通常涉及产品策略制定、市场趋势分析、用户...
标题 "IEEE802.15.4g-2012" 指的是一个特定的IEEE(国际电气和电子工程师协会)标准,该标准是IEEE 802.15.4标准的一个修订版,日期为2012年。这个修订版针对的是低速无线个人区域网络(LR-WPANs),主要是为了满足...
15. **Java 8及以后的更新**:包括Lambda表达式、Stream API、Optional类等新特性,增强了Java的功能和表达力。 由于原始的描述和标签没有提供具体细节,以上只是对Java编程语言的一般性概述。如果要深入学习或理解...
2012-02-16 09:17 3,426 FXSPERF.DL_ 2012-02-16 09:50 932 FXSPERF.IN_ 2012-02-16 09:18 122,411 FXSRES.DL_ 2012-02-16 09:50 19,477 FXSROUTE.DL_ 2012-02-16 09:50 10,582 FXSSEND.EX_ 2012-02-16 09:18 37,188...