Flex性能小结
Flex性能总结
1、使用强类型变量??
如:var crtPiece:int = movesArray[i].piece; 可以写成var crtMove:Move = movesArray[i]; var crtPiece:int = crtMove.piece;
如:var element:int = matrix[i][j]; 可写成var row:Array = matrix[i];
var element:int = row[j];
但是本人测试过,存在疑问,发现前者比后者性能好,不知道什么原因,请看我的测试代码:
2、Math函数是比较耗时的,简单的功能可以尽量自己实现
var x:int = Math.min(a,b)可写成var x:int = (a<b) ? a : b;
3、位操作, 乘法和除法操作之间的性能比较
我们需要理解一种概念,任何代码到最后都会转化为机器语言来执行,所以应该不难理解位操作的性能比其他任何计算都快,只是它比较难读懂而已。
var x:int = a/2;性能低于var x:int = a*0.5;性能低于var x:int = a >> 1; //2^1 = 2;
if (n % x == 0)性能低于if (n & (x-1) == 0)
4、把复杂的条件表达式分解成各个独立的结构
可写成如下形式:
5、可以使用[]来创建一个Array实例
var a = new Array(); 可写成 var a = [];
6、减少容器的嵌套
7、用HBox and Vbox来代替Grid.
8、一个MXML组件的根并不需要是一个容器。
Polygon是折现类并不继承flex的uicomponent,
而Flex的uicomponent已经是一个比较成形的图形组件了,它最终也是实现flash.events.IEventDispatcher,Polygon之所以能画多边形,可能他通过实现鼠标事件调用google maps类中自己的图形类来画折线。
Flex中的所有特效都是继承Effect类,而Effect类继承关系如下:http://livedocs.adobe.com/flex/3_cn/langref/mx/effects/Effect.html
如果想要Polygon有特效,需要实现IEffect接口。
1、使用强类型变量??
如:var crtPiece:int = movesArray[i].piece; 可以写成var crtMove:Move = movesArray[i]; var crtPiece:int = crtMove.piece;
如:var element:int = matrix[i][j]; 可写成var row:Array = matrix[i];
var element:int = row[j];
但是本人测试过,存在疑问,发现前者比后者性能好,不知道什么原因,请看我的测试代码:
var b:String; var d:Number = 0; var time:int; var e:Number = 0; var f:Number = 0; var a:Array = []; var person:PersonVO;//可以自己实现一个PersonVO var personTemp:PersonVO; var i:int = 0; var j:int = 0; for (i=0; i<500000; i++) { person = new PersonVO(); person.ID = i; person.name = "name"+i a[i]=person; } var predate:Date = new Date(); trace(predate); d = predate.valueOf(); time=getTimer(); trace(time); for(i = 0; i < 500000; i++){ b = a[i].name; } predate = new Date(); trace(predate); e = predate.valueOf()-d; d = predate.valueOf(); for(i = 0; i < 500000; i++){ personTemp = a[i]; b=personTemp.name; } predate = new Date(); trace(predate); f=predate.valueOf()-d; trace(e,f);
2、Math函数是比较耗时的,简单的功能可以尽量自己实现
var x:int = Math.min(a,b)可写成var x:int = (a<b) ? a : b;
3、位操作, 乘法和除法操作之间的性能比较
我们需要理解一种概念,任何代码到最后都会转化为机器语言来执行,所以应该不难理解位操作的性能比其他任何计算都快,只是它比较难读懂而已。
var x:int = a/2;性能低于var x:int = a*0.5;性能低于var x:int = a >> 1; //2^1 = 2;
if (n % x == 0)性能低于if (n & (x-1) == 0)
4、把复杂的条件表达式分解成各个独立的结构
while(--i > -1){if (a == 1 && b == 2 && c == 3 && d == 4){var k = d * c * b * a;}}
可写成如下形式:
while(--i > -1){if (a == 1){if (b == 2){ if (c == 3) { if (d == 4) {var k = d * c * b * a;} }}}}
5、可以使用[]来创建一个Array实例
var a = new Array(); 可写成 var a = [];
6、减少容器的嵌套
7、用HBox and Vbox来代替Grid.
8、一个MXML组件的根并不需要是一个容器。
1 楼
strugglesMen
2011-05-04
Polygon是flex的扩展类,是用来在flash版 google 地图上画多边形,他好像不是uicomponent组件,那他
为什么有图形界面呢,怎样重写能让Polygon具有effect效果呢?
Polygon继承关系
http://alt.coxnewsweb.com/ajc/swf/_2010_Flash/MapsTest/sdk/docs/com/google/maps/overlays/Polyg
on.html
Polygon详细介绍
http://code.google.com/intl/zh-CN/apis/maps/documentation/flash/reference.html#Polygon
为什么有图形界面呢,怎样重写能让Polygon具有effect效果呢?
Polygon继承关系
http://alt.coxnewsweb.com/ajc/swf/_2010_Flash/MapsTest/sdk/docs/com/google/maps/overlays/Polyg
on.html
Polygon详细介绍
http://code.google.com/intl/zh-CN/apis/maps/documentation/flash/reference.html#Polygon
2 楼
ch19880311
2012-07-18
strugglesMen 写道
Polygon是flex的扩展类,是用来在flash版 google 地图上画多边形,他好像不是uicomponent组件,那他
为什么有图形界面呢,怎样重写能让Polygon具有effect效果呢?
Polygon继承关系
http://alt.coxnewsweb.com/ajc/swf/_2010_Flash/MapsTest/sdk/docs/com/google/maps/overlays/Polyg
on.html
Polygon详细介绍
http://code.google.com/intl/zh-CN/apis/maps/documentation/flash/reference.html#Polygon
为什么有图形界面呢,怎样重写能让Polygon具有effect效果呢?
Polygon继承关系
http://alt.coxnewsweb.com/ajc/swf/_2010_Flash/MapsTest/sdk/docs/com/google/maps/overlays/Polyg
on.html
Polygon详细介绍
http://code.google.com/intl/zh-CN/apis/maps/documentation/flash/reference.html#Polygon
Polygon是折现类并不继承flex的uicomponent,
而Flex的uicomponent已经是一个比较成形的图形组件了,它最终也是实现flash.events.IEventDispatcher,Polygon之所以能画多边形,可能他通过实现鼠标事件调用google maps类中自己的图形类来画折线。
Flex中的所有特效都是继承Effect类,而Effect类继承关系如下:http://livedocs.adobe.com/flex/3_cn/langref/mx/effects/Effect.html
如果想要Polygon有特效,需要实现IEffect接口。