新的一年到来了,是时候为flash的性能制定新的解决方案了。今天的文章收集了我认为可以提升flash程序性能的十大要点。继续往下读吧。
1.使用flash的源生代码代替as3
一般情况下,使用flash player的原生代码做一些大负荷的工作要比使用as3去做好的多。因为和调用flash player api(flash包里面的所有东西)里面的方法相比,在vm(虚拟机)里运行你自己的as3代码势必会带来一些间接成本。不适用这个规则的例外是,api有时会做你不想做的事情,比如分配内存
2.减少内存分配以降低gc
除了你预料到的内存分配,比如通过使用某个新的操作触发某个事件,还有很多隐藏的分配,比如关联的字符串对象、flash player自己创建的对象,如事件。这些分配很慢,使用完了回收他们更慢,所以试着去掉这样的分配。
3.减少对象的数目以降低gc
使用完的对象,flash player的垃圾回器会回收他们的内存来重新使用。不幸的是,这个过程是非常缓慢的而且我们不能控制它什么时候执行。所以,尽量重用已经存在的对象而减少使用new来声明新的对象。对这方面有帮助的一个技术是free lists。
4.不要使用任何动态的东西
这包括动态的函数(如无特征的函数和被声明为局部变量的函数),如Object和MovieClip这样的对象,用"[]"操作符访问字段、无类型的变量。这些都比使用相应的静态量(如正规的函数、非动态类、"."运算符、有类型的变量)要慢的多。
5.把更多的事情交给gpu
现在在flash里面(fp11)我们除了可以使用cpu外,还可以使用显卡的gpu。二者的组合使用是完成高性能3D图像处理(Stage3D)和高清视频(StageVideo)播放的关键。
6.减少函数的调用
非常不幸的是,函数调用在as3里面是非常慢的。这包括总在使用的getter和setter方法(如调用数组的长度Array.length)。尝试用缓存函数的执行结果来代替多次的函数调用,尤其是用getter的时候。在极个别情况下,手动地把一个小的函数体合并到一个更大的函数里面。
7.使用专用的函数或者类,而不是通用的
Sprite比MovieClip省内存,Shape比Sprite省内存,BitmapData的copyPixels方法比draw方法更快。
8.尽量少的使用静态访问
访问静态变量、常量和函数比访问非静态的要慢很多。尽量使用非静态方案或者把静态访问缓存为非静态变量、常量或者局部的变量、常量。
9.局部变量比字段(原文为文fields,译者认为就是所谓的成员变量)更好
读取类变量和对象变量(又叫字段,成员变量)比访问局部变量要慢地多。如果你频繁的使用某个字段访问,那么最好把它缓存为局部变量。
10.清除无意义的代码
经常见到一些变量被初始化为该类型的默认值,这会减缓对象的创造时间和函数的执行时间。作为一个好的习惯,清除那些无用代码,你的整个程序的性能将会提升。
敬请期待更多关于flash性能要点的文章
分享到:
相关推荐
在Flash环境中,ActionScript 3(AS3)是编程语言,用于创建交互式的动画和应用程序。本教程将深入探讨如何使用AS3来创建自定义滚动条。 首先,滚动条主要由两部分组成:水平滚动条和垂直滚动条。它们通常包含一个...
这对于提升AS3编程技能,以及对游戏开发的理解都大有裨益。 总结,AS3实现的连连看源代码展示了如何利用AS3进行游戏开发的基本流程,包括图形绘制、事件处理、数据结构和算法的运用。深入学习和理解这一源代码,将...
- **发展历程**: AS3 作为 ActionScript 的第三个版本,在功能上有了显著提升,与之前的版本相比更加高效和易于使用。 - **应用场景**: AS3 主要应用于 Web 开发领域,特别是在创建动画、视频播放器、游戏等方面具有...
本篇将深入探讨如何利用Flash ActionScript 3(AS3)实现一个3D照片墙的制作过程,以“小鸟3D照片墙X版”为例,揭示其背后的编程原理和技术要点。 首先,我们了解3D照片墙的基本概念。3D照片墙是指在二维平面上模拟...
在“超级玛丽”游戏项目中,myproject4可能包含了多个类文件,如Main.as(主程序)、Player.as(玩家角色)、Level.as(关卡)、Coin.as(金币)等。良好的代码组织结构和模块化设计能提高代码的可读性和可维护性。...
在AS3.0中,性能得到了显著提升,类和对象的面向对象编程模型更加完善,语法也更为严格,这使得它成为专业开发者们的首选工具。 本资源包含18个精心设计的AS3.0实例,涵盖了Flash开发的多个关键领域,对于初学者和...
计算机系统概述是理解信息技术基础的重要部分,本章复习要点涵盖了计算机的发展历史、冯诺依曼结构、计算机系统的基本组成以及性能评价等多个关键知识点。 一、计算机发展历史 计算机的发展经历了四个主要阶段,每...
### 网卡RTL8019AS:深入解析与技术要点 #### 一、产品概览 **RTL8019AS**是Realtek半导体公司出品的一款高性能、全双工PCI以太网控制器,内置SRAM,适用于各种PC平台。这款控制器提供了高速的数据传输能力,同时...
ActionScript是Flash中用于创建交互式内容、动画和应用程序的主要脚本语言,而AS3.0是其第三个主要版本,提供了更现代的面向对象编程支持和更好的性能。 【描述】:“用flash+as3.0写的 九宫格拼图游戏。图片用的是...
- **性能提升**:AS/400平台通常具有更好的性能和稳定性。 - **维护成本降低**:集中管理可以减少维护成本。 - **安全性增强**:AS/400系统本身的安全机制更为强大。 - **兼容性问题**:需注意部分应用程序可能需要...
标题中的“基于SSM的SaaS微信小程序电商系统一键生成小程序源码”表明这是一个使用SSM(Spring、SpringMVC、MyBatis)框架开发的SaaS(Software as a Service)电商平台,它专为微信小程序设计,并且提供一键生成小...
随着版本的演进,ActionScript 3.0 在性能、安全性和易用性方面有了显著提升。 - **ActionScript 3.0 的优点**:相比之前的版本,ActionScript 3.0 提供了更好的执行速度、更丰富的类库支持以及更为现代的编程模型。...
提高C#编程水平是每个C#开发者不断追求的目标,这50个要点涵盖了从基础概念到高级技术的多个方面,旨在帮助开发者提升代码质量和系统性能。以下是对这些要点的详细解释: 1. **属性(Property)优于字段(Field)**...
在深入探讨这50个要点如何帮助提升C#编程水平之前,我们首先应当明确C#是一种广泛应用于多种领域的现代编程语言,由微软开发并作为.NET框架的一部分被推广使用。掌握这些要点不仅能够提升代码的质量与效率,还能加深...
- **性能优化**:Flex3在前一代基础上进行了大量性能优化工作,特别是在内存管理和渲染效率上有了显著提升。 - **工具支持**:提供了更为强大的开发工具包,包括Flex Builder 3等,极大地提高了开发效率。 - **...
AS3相比AS2具有更现代的语法和性能优化,因此在现代项目中更常被使用。 拼图游戏的核心机制在于图像分割和重组。在这个游戏中,我们有三张图片:image1.jpg、image3.jpg和image2.jpg。这些图片被切割成多个部分,...
学习者需要了解如何通过减少不必要的计算、优化图形渲染等手段来提升程序性能。 通过上述内容的学习,新手可以系统地了解ActionScript 3.0的基本概念和技术要点,为进一步深入学习和实践打下良好的基础。
3. **优先使用as操作符**:as操作符用于类型转换,如果转换失败,它会返回null,而不会抛出异常。这比强制类型转换更安全。 4. **条件属性(Conditional Attributes)**:通过条件属性,可以在编译时决定代码是否应该...
在实际应用中,掌握其要点和解决难点是提升工作效率的关键。以下将围绕“PostgreSQL要点和难点实际应用方向”以及“具体案例代码与解析”进行深入探讨。 1. **PostgreSQL要点** - **安装与配置**: PostgreSQL的...