- 浏览: 1044783 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (538)
- 奇文共赏 (36)
- spring (13)
- hibernate (10)
- AOP/Aspectj (9)
- spring security (7)
- lucence (5)
- compass (3)
- jbmp (2)
- jboss rule(drools) (0)
- birt (1)
- jasper (1)
- cxf (3)
- flex (98)
- webgis (6)
- 设计模式 (1)
- 代码重构 (2)
- log4j (1)
- tomcat (9)
- 神品音乐 (1)
- 工作计划 (2)
- appfuse (1)
- svn (4)
- 寻章摘句 (3)
- eclipse (10)
- arcgis api for flex (1)
- 算法 (5)
- opengis-cs (1)
- bug心得 (13)
- 图标 (1)
- software&key (14)
- java (17)
- 搞笑视频 (13)
- sqlserver (9)
- postgresql (1)
- postgis (0)
- geoserver (5)
- 日子 (50)
- 水晶报表 (1)
- 绝对电影 (3)
- Alternativa3D (1)
- 酷站大全 (10)
- c++ (5)
- oracle (17)
- oracle spatial (25)
- flashbuilder4 (3)
- TweenLite (1)
- DailyBuild (6)
- 华山论贱 (5)
- 系统性能 (5)
- 经典古文 (6)
- SOA/SCA/OSGI (6)
- jira (2)
- Hadoop生态圈(hadoop/hbase/pig/hive/zookeeper) (37)
- 风水 (1)
- linux操作基础 (17)
- 经济 (4)
- 茶 (3)
- JUnit (1)
- C# dotNet (1)
- netbeans (1)
- Java2D (1)
- QT4 (1)
- google Test/Mock/AutoTest (3)
- maven (1)
- 3d/OSG (1)
- Eclipse RCP (3)
- CUDA (1)
- Access control (0)
- http://linux.chinaunix.net/techdoc/beginner/2008/01/29/977725.shtml (1)
- redis (1)
最新评论
-
dove19900520:
朋友,你确定你的标题跟文章内容对应???
tomcat控制浏览器不缓存 -
wussrc:
我只想说牛逼,就我接触过的那点云计算的东西,仔细想想还真是这么 ...
别样解释云计算,太TM天才跨界了 -
hw_imxy:
endpoint="/Hello/messagebr ...
flex+java代码分两个工程 -
gaohejie:
rsrsdgrfdh坎坎坷坷
Flex 与 Spring 集成 -
李涤尘:
谢谢。不过说得有点太罗嗦了。
Oracle数据库数据的导入及导出(转)
写游戏只要有思路,就能实现,但这也只是从功能角度出发,能不能有好的效率,才是关键,于是想积累一些关于优化方面的知识。
关于AS3 FOR内循环的优化
当我们遍历一个数组的时候 ,你可能会这样写
private function testFor() : void
{
var tmpVar:int;
for(var i:Number=0; i {
tmpVar = testArray[i];
}
}
执行这个函数50次,所用的时间是53.34毫秒。
如果我们将number类型改成int类型,如下
for(var i:int=0; i
这样所执行的时间是35.58毫秒。
如果先把数组的长度计算出来,速度会更快
var l:int = testArray.length;
for(var i:int=0; i
这个仅仅用了21.6毫秒
所以在for循环上int比number快,将length在循环外事先定义出来比直接写在for条件语句里面要快。
再看两段代码
var tmpVar:int;
for(var i:Number=0; i<100000; i++)
{
tmpVar = SomeClass.SOME_CONSTANT;
}
和
var tmpVar:int;
var myConstant:int = SomeClass.SOME_CONSTANT;
for(var i:Number=0; i<100000; i++)
{
tmpVar = myConstant;
}
前者的运行速度是34.08毫秒,后者的速度是 15.8毫秒
所以说 在FOR循环外先取到类属性,比拿到FOR循环内再去取类的属性的速度要快
变量在FOR内的定义
for(var i:int=0; i<100000; i++)
{
var v1:Number=10;
var v2:Number=10;
var v3:Number=10;
var v4:Number=10;
var v5:Number=10;
}
这个FOR需要用46.52毫秒,如果你用一个 var 去定义所有,将这些变量写成一行,像这样
for(var i:int=0; i<100000; i++)
{
var v1:Number=10, v2:Number=10, v3:Number=10, v4:Number=10, v5:Number=10;
}
执行之间缩短到 19.74
所以 在FOR循环内 尽量减少var这个关键字出现的次数,会提高效率
逻辑运算符的适当运用也会提高效率的
for(var i:int=0; i<100000; i++)
{
var val1:int = 4 * 2;
var val2:int = 4 * 4;
var val3:int = 4 / 2;
var val4:int = 4 / 4;
}
这段执行时间为 49.12 毫秒, 如果换成下面的代码,将会降到 35.56 毫秒
for(var i:int=0; i<100000; i++)
{
var val1:int = 4 << 1;
var val2:int = 4 << 2; var val3:int = 4 >> 1;
var val4:int = 4 >> 2;
}
关于AS3 FOR内循环的优化
当我们遍历一个数组的时候 ,你可能会这样写
private function testFor() : void
{
var tmpVar:int;
for(var i:Number=0; i {
tmpVar = testArray[i];
}
}
执行这个函数50次,所用的时间是53.34毫秒。
如果我们将number类型改成int类型,如下
for(var i:int=0; i
这样所执行的时间是35.58毫秒。
如果先把数组的长度计算出来,速度会更快
var l:int = testArray.length;
for(var i:int=0; i
这个仅仅用了21.6毫秒
所以在for循环上int比number快,将length在循环外事先定义出来比直接写在for条件语句里面要快。
再看两段代码
var tmpVar:int;
for(var i:Number=0; i<100000; i++)
{
tmpVar = SomeClass.SOME_CONSTANT;
}
和
var tmpVar:int;
var myConstant:int = SomeClass.SOME_CONSTANT;
for(var i:Number=0; i<100000; i++)
{
tmpVar = myConstant;
}
前者的运行速度是34.08毫秒,后者的速度是 15.8毫秒
所以说 在FOR循环外先取到类属性,比拿到FOR循环内再去取类的属性的速度要快
变量在FOR内的定义
for(var i:int=0; i<100000; i++)
{
var v1:Number=10;
var v2:Number=10;
var v3:Number=10;
var v4:Number=10;
var v5:Number=10;
}
这个FOR需要用46.52毫秒,如果你用一个 var 去定义所有,将这些变量写成一行,像这样
for(var i:int=0; i<100000; i++)
{
var v1:Number=10, v2:Number=10, v3:Number=10, v4:Number=10, v5:Number=10;
}
执行之间缩短到 19.74
所以 在FOR循环内 尽量减少var这个关键字出现的次数,会提高效率
逻辑运算符的适当运用也会提高效率的
for(var i:int=0; i<100000; i++)
{
var val1:int = 4 * 2;
var val2:int = 4 * 4;
var val3:int = 4 / 2;
var val4:int = 4 / 4;
}
这段执行时间为 49.12 毫秒, 如果换成下面的代码,将会降到 35.56 毫秒
for(var i:int=0; i<100000; i++)
{
var val1:int = 4 << 1;
var val2:int = 4 << 2; var val3:int = 4 >> 1;
var val4:int = 4 >> 2;
}
发表评论
-
ActionScript 3.0 性能优化小知识
2010-07-30 14:12 1031http://xinsync.xju.edu.cn/in ... -
Flex企业级UI权限控制
2010-07-28 16:14 1299http://www.pin5i.com/showtopic- ... -
flex4中PopUpManager在module中有问题
2010-06-24 11:10 3139flex4中module加载module后flex4中 a ... -
Flex 开发: 类的反射
2010-06-24 10:56 1269http://www.ibm.com/developerwor ... -
Problems with ByteArray.writeObject()
2010-05-19 21:47 1724http://www.actionscript.org/for ... -
利用 E4X解决 XML 处理的性能问题
2010-05-19 21:11 1750http://www.blogjava.net/rosen/a ... -
正在安装的adobe flash player版本不是最新的版本
2010-04-22 09:56 2455打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\ ... -
flex模块切换时导致对象不正确序列化的解决办法
2009-12-02 09:08 1627http://lkfnn.iteye.com/blog/506 ... -
漂亮的登陆
2009-11-19 16:32 1159http://dougmccune.com/360Flex_A ... -
Download all 177 Flash Effects Source Files .fla
2009-11-13 09:27 1222http://www.jeffjoneslive.com/Fl ... -
flex如何接受其他页面Post过来的数据
2009-10-10 11:15 2556问题描述: 有个程序需要调用我的flex页面,需要给我传 ... -
Change font size in the whole app with Ctrl+/-
2009-10-09 10:06 1201http://feedproxy.google.com/~r/ ... -
flex delete关键词和类成员
2009-10-09 09:01 1407flash中delete关键词用来移除定义的变量,并不能从内存 ... -
Flex HTTPService如何给后台传递参数
2009-10-09 08:56 1525http://blog.csdn.net/joeyshi/ar ... -
FLEX Builder compiler arguments 的设置
2009-09-28 08:20 1655http://flash.9ria.com/thread-18 ... -
12 Best Adobe AIR Applications for Web Designers
2009-09-25 08:20 107612 Best Adobe AIR Applications ... -
做网页如何改变IE地址栏的显示IE图标
2009-09-23 16:55 2701这个问题的解决其实在flex之外 修改index.templa ... -
Flex设置html(页面标题)title问题
2009-09-23 15:31 3286如果你是一个整体系统用了同一个标题:可以修改模板页index. ... -
flex中文问题,访问中文路径问题
2009-09-23 14:36 1202本文最先发表在本人个 ... -
一些漂亮的Flex主题下载
2009-09-17 17:29 2335http://www.flexer.cn/blog/?p=64 ...
相关推荐
在优化ActionScript(AS)代码时,无论是AS2还是AS3,提高性能是开发者的关键目标。以下是一些有助于提升代码效率的技巧: 1. **计算代码执行时间**:使用`getTimer()`函数来测量代码块的运行时间,这对分析性能...
2. **事件驱动编程**:AS3中的事件模型是其核心机制之一,允许响应用户交互或其他程序事件。事件监听器注册(addEventListener)和移除(removeEventListener)是处理事件的关键。 3. **显示列表**:AS3的显示列表...
3. **事件处理**:AS3中的事件模型是其强大之处,通过addEventListener和dispatchEvent等方法可以实现丰富的用户交互。学会如何正确处理和响应事件是制作动态UI和游戏的重要技能。 4. **显示对象和舞台**:AS3中的...
AS3提供了XML和E4X(ECMAScript for XML)支持,方便解析和操作XML数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,AS3也有内置的JSON对象用于序列化和反序列化。 七、网络通信 AS3提供了...
1. AS3基础:首先,你需要了解AS3的基本语法,包括数据类型(如String、Number、Boolean)、变量、常量、运算符、控制结构(如if语句、for循环、while循环)、函数、类和对象。AS3采用面向对象编程,理解类的继承、...
这个RAR压缩文件内包含的"AS3Help"可能是一个独立的文档集合,它可能包含了详细的API参考、示例代码、教程章节等,以帮助你快速查找和理解AS3的各种功能和方法。使用它的搜索功能,你可以快速定位到你需要的信息,...
### AS3.0_AS3殿堂之路_笔记 #### 核心知识点概览 根据提供的笔记内容,我们可以总结出以下核心知识点: 1. **基础概念理解与应用** 2. **事件处理与监听** 3. **图形绘制与动画制作** 4. **类与对象的设计** 5. ...
1. **基础语法**:包括变量声明、数据类型(如Number、String、Boolean、Object等)、运算符、流程控制(如if语句、for循环、while循环)和函数定义。 2. **面向对象编程**:AS 3.0支持类、继承、封装和多态等面向...
3. **流程控制**:包括条件语句(if...else)、循环结构(for、while、do...while)、开关语句(switch...case)和跳转语句(break、continue)。 4. **函数**:AS2中的函数可以接受参数,返回值,并能作为对象的...
2. FOR循环:通常用于遍历一个范围内的数字或集合,比如在PL/SQL中的FOR IN循环。 二、WHILE循环 WHILE循环在PL/SQL和T-SQL中都有使用。下面是一个简单的示例: ```sql DECLARE i NUMBER := 1; -- 初始化变量 ...
3. **事件处理**:在AS3.0中,事件驱动编程是核心概念之一。学习者会了解到Event类和EventListener接口,以及如何使用addEventListener和removeEventListener来响应用户交互。 4. **显示对象**:AS3.0的显示对象...
1. **基础语法**:AS2.0采用ECMAScript语法,包括变量声明、数据类型(如Number、String、Boolean等)、流程控制(如if语句、for循环、while循环)以及函数定义。 2. **对象与类**:AS2.0引入了面向对象编程的概念...
3. **合理使用循环结构**:针对循环操作进行优化,比如缩小循环范围、提前退出循环等。 4. **算法选择**:根据实际需求选择合适的算法实现,避免使用复杂度高的算法。 5. **内存管理**:有效管理内存分配和释放,...
- 循环结构:for、while、do...while循环用于重复执行代码块。 - 函数定义:使用`function`关键字创建自定义函数,例如`function myFunction():void {}` 3. **面向对象编程**: - 类与对象:AS3是完全的面向对象...
3. **终止值**:循环结束时控制变量应达到的值。如果控制变量等于或超过这个值,循环将停止。 4. **步长**(可选):每次循环迭代时控制变量增加或减少的数值。默认值为1,若需倒序循环,可设置为负数。 二、For...
理解这两种循环的区别对于优化代码性能和编写高效程序至关重要。 首先,让我们详细了解一下`for`循环。`for`循环是一种基于索引的循环,它通常用于已知迭代次数或者需要按特定顺序访问数组或集合的情况。`for`循环...
1. **基础语法**:AS3.0的基础包括变量、数据类型(如整型、字符串、布尔型)、运算符、流程控制语句(如if、for、while循环)等,这些都是编写任何程序的基础。 2. **对象和类**:AS3.0采用完全的面向对象编程,...
1. **基础语法**:AS3采用了类C的语法结构,包括变量声明(var)、数据类型(如Number、String、Boolean等)、流程控制(if语句、for循环、while循环)、函数定义与调用。 2. **面向对象编程**:AS3支持类(class)...