首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > 高性能WEB开发 >

关于as3性能的有关问题 Flex

2013-04-26 
关于as3性能的问题 Flex我最近做了一个测试,发现Flex(as3)的计算性能特别差(比java慢了几乎几百倍)。但是,

关于as3性能的问题 Flex
我最近做了一个测试,发现Flex(as3)的计算性能特别差(比java慢了几乎几百倍)。但是,为什么Web视频媒体上Flex却表现不错?求高手讲解讲解!
试验一、1到1亿的求和:
java代码:


      public static void main(String[] arg)
{
 long begin=new Date().getTime();
 int result=0;
 for(int i=0;i<=100000000;i++)
 {
 result+=1;
 }
 long end=new Date().getTime();
 System.out.println("用时:"+(end-begin));
}


Flex as3代码:

protected function button1_clickHandler(event:MouseEvent):void
{
var t1:Number=getTimer();
var count:int=0;
for(var i:int=0;i<100000000;i++)
{
count+=1;
}
var t2:Number=getTimer();
var result:Number=t2-t1;
trace("用时:"+result.toString());
}



试验结果:
 java耗时:90ms
 AS3耗时:8100ms

试验二、A函数调用B函数。其中B函数不做任何操作。

java代码:

      private void test()
{
 long begin=new Date().getTime();
 int i=100000000;
 while(i>0)
 {
 func();
 i--;
 }
 long end=new Date().getTime();
 System.out.println("用时:"+(end-begin));
}
private void func()
{

}

Flex as3 代码:

          protected function button2_clickHandler(event:MouseEvent):void
{
var t1:Number=getTimer();
var i:int=100000000;
while(i>0)
 {
 func();
 i--;
 }
 var t2:Number=getTimer();
 var result:Number=t2-t1;
 trace("用时:"+result.toString());

}

private function func():void
{

}

试验结果:
java耗时:44ms
Flex耗时:30200ms flex java as3
[解决办法]
貌似因为AS代码是纯解释执行的,而JAVA代码是编译成IL后运行的,之所以AS视频流畅,是因为使用了硬件加速而非纯CPU执行.

热点排行