posts - 22, comments - 17, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
最近看了Peter的Javascript的惰性函数定义模式(Lazy Function Definition)之后,想测试下as下的这种函数模式的效率是否比一般的模式要高。不了解此函数定义模式的朋友可以看看这篇文章的翻译。我做了如下测试:

//普通函数模式
var num = 0;
function test1() 
{
    
return num++;
}

//惰性函数模式
var test2 = function () {
    var num 
= 0;
    test2 
= function () {
        
return num++;
    }
;
    
return num++;
}
;
getTime1();
getTime2();
function getTime1() 
{
    var time 
= getTimer();
    
for (var i:Number = 0; i < 1e+5; i++{
        test1();
    }

    trace(
"test1调用次数:" + test1());
    trace(
"普通函数模式:" + (getTimer() - time));
}

function getTime2() 
{
    var time 
= getTimer();
    
for (var i:Number = 0; i < 1e+5; i++{
        test2();
    }

    trace(
"test2调用次数:" + test2());
    trace(
"惰性函数模式:" + (getTimer() - time));
}

在我的机器上的测试结果是普通函数模式运行10万次的时间为825ms左右,惰性函数模式则为790ms左右。从效率上来看,2种模式基本差不多,但惰性模式有它的优点:省略了多余的全局变量num,而且可以防止变量num在函数外部被修改,效率方面也有些提升,还是值得使用的。

然而当我想测试as3下是否也这样的时候,却得到了一个惊人结果:普通函数模式运行100万次的时间为110ms左右,惰性函数模式为320ms左右。显然有一个结论是,在as3下,这种惰性函数模式效率比普通模式低了很多,是否要应用这种函数模式就值得商榷了。但是大家看清楚刚才的测试,as2下是10万次而as3下是100万次。。。它们之间的差距我只能用天壤之别来形容了。呵呵,看到这里,是不是让大家更有信心投入到as3的怀抱中呢?

Feedback

# re: 谈谈Actionscript中的惰性函数定义模式(Lazy Function Definition)  回复  更多评论   

2010-04-22 10:08 by GenaPadilla
Don't have enough money to buy some real estate? Do not worry, just because that is available to get the <a href="http://lowest-rate-loans.com">loan</a> to resolve such kind of problems. Hence take a term loan to buy everything you want.

# re: 谈谈Actionscript中的惰性函数定义模式(Lazy Function Definition)  回复  更多评论   

2010-05-05 00:30 by dissertation writing
A PhD degree should be very serious issue for anyone. Who can aid you in dissertation form about this good post making? I will offer to order the dissertation writing in the dissertation writing services. We hope that the proposition would aid students!

# re: 谈谈Actionscript中的惰性函数定义模式(Lazy Function Definition)  回复  更多评论   

2010-05-05 16:23 by ibio
不知道 LZ 这里说的惰性函数是不是可以理解成闭包?
如果是闭包的话,我觉得在 AS3 里面一定是不太好的。
1 有内存泄露问题。
2 不利于面向对象。

# re: 谈谈Actionscript中的惰性函数定义模式(Lazy Function Definition)  回复  更多评论   

2010-07-24 12:05 by resume writer

Thank you, it's very inspiring article about this good topic it might be very polite for students.
Recently i needed resume writing services. To my adroitest surprise, resume was desirable the price I paid for it.
只有注册用户登录后才能发表评论。