Flash游戏、Flash音乐、小游戏

加入收藏

设为主页

首页 | Flash游戏 | Flash音乐 | Flash动画 | 邻家女孩 | 动漫下载 | 小说 | 动漫资讯 | 免费博客

Flash游戏 | 动漫COSPLAY | 手机世界 | 游戏新闻 | IT业界 | 动漫设计 | 软硬件交流

首页>>动漫设计>>正文setInterval测试报告

将woogood加入收藏夹 | 将woogood设置成为你电脑首页

搜索 SEARCH

    

setInterval测试报告

作者:[] 来源:[xfykzz BLOG] [2005-8-15 17:40:50] [对"setInterval测试报告"发表评论]

最新文章

·隐藏卸载信息:跟入侵者玩躲猫猫
·网络新威胁 无线局域网入侵检测现
·宽带用户易被攻击 用户需注意七大
·如何查找和清除线程插入式木马程
·日志分析两部曲:充分利用日志保
·安全设置Windows组策略 有效阻止
·实现了!中文WinXP安装IE7 Beta1
·黑客破解Email账号常用的三种方法
·基础知识 XST攻击理论及手法讲解
·威胁同样巨大 基于Telnet协议的攻

推荐文章

·请教看电影多的人问题
·文字处理软件疑难问题求助,
·求助:Excel问题
·在线等...........
·大家都是怎样用摄像头的?发
·如何加启动程序?急
·midia player classic使用时
·关于IE,请大家帮助
·IE被改用兔子也没用啊??
·播放器问题,大家帮帮忙啊

  之前对于setInterval的一些性能多多少少也有些听闻,不过一直没有测试,今天我特意测试了一下,主要也是因为之前游戏的需要.得出了几个结论与建议.对测试过程没有兴趣的朋友可以直接跳过看后面的结论与建议.

  首先测试的是timer的递增对资源的影响.帧频为12fps.n=1,结果当timer递增时CPU与内存都缓慢递增,表明setInterval用得频繁对性能还是有一定影响的.

  程序代码:

var n:Number=10;
var timer:Number;
function test() {
    trace(timer);
    clearInterval(timer);
    timer = setInterval(test, n);
}
timer = setInterval(test, n);



  之后再测试对同一个setInterval,不同频率的n值时真正的频率,代码如下:

  程序代码:

var n:Number=10;
var timer:Number;	 
var old:Number=getTimer();
function test() {
    var m:Number=getTimer();
    trace(1000/(m-old));
    trace("----------------------------------");
    old=m;
}
timer = setInterval(test, n);

测试结果如下(平均结果,有随机的跃变,两个数字代表在两个数字之间跃变):

12fps:
n Hz
1 125
5 125
8 125
10 62.5
12 62.5
20 42
25 32,37
50 18
100 5.7
200 3.78(稳定)
500 1.89(稳定)
1000 0.946(稳定)
--------------------------
20fps:
n Hz
1 200
5 200
8 100
10 90,100
12 66.7
20 50(稳定)
25 40(稳定)
50 20
100 10
200 4.87
500 2
1000 0.97(稳定)
--------------------------
50fps:
n Hz
1 500(稳定)
5 166.7
8 111,125
10 91,100
12 76.9,83.3
20 47.6,50
25 23.8
50 20
100 10
200 4.87
500 2
1000 0.97(稳定)
--------------------------

  根据以上数据可以得出关于setInterval的三点结论:

  1. 时间间隔虽然由n指定,但是有一个"物理上限",到达某一间隔后再也不能缩小间隔了,比如12fps时的物理上限是125ms,即8fps.

  2. 间隔与帧频越接近,则误差越小.

  3. 当间隔增大到某一界限时,就变得比较稳定,且误差较小,与帧频无关.

  另外,根据实验数据还能得出以下三个结论:

  1. 当n值比较大时(比如n=1,5,8,10),无论帧频多少,在起初的几次间隔时间都比较大,然后才逐渐趋向于某一定值.

  2. 在n=10左右时间隔时间会有一次跃变,数值会突然下降原因未知.

  3. 大多数时候间隔数值会在几个数值之间跃变.

  综上,在使用setInterval时,其时间间隔参数真的只能起"参考作用",其具体数据是多少会因为各种情况而改变.因此我有以下三点建议:

  1. 不用的setInterval一定要用clearInterval把timer标识清除掉.

  2. n值不宜过高,太高则没有意义,对资源也会有额外浪费.

  3. 帧频宜与n值相距不大,帧频*n=1000左右是最好的效果.如果不行,宁愿让帧频高点.setInterval低点.

  来源:http://www.xfykzz.com/blog/blogview.asp?logID=275

(完)

相关文章:

对"setInterval测试报告"发表评论:

会员名称:
密码:匿名 ·注册·(匿名无须填写密码)
评论内容:
(最多300个字符)
  查看评论

热门Flash 最新Flash 热门小说 最新小说

 

Copyright@2005-2006 精品Flash www.WooGood.com All Right Reserved

联系信箱: gold1686tom.com