加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于BitmapData画图方法效率的测试和对比

发布时间:2020-12-15 06:52:19 所属栏目:百科 来源:网络整理
导读:作为Flash 游戏 开发 者,整天都在跟Flash的显示效率搏斗。最近为了更好的节约效率,在下做了一些测试,得到了一些结果,同时也感到了一些问题,请诸位高手也帮忙看看! ******************************************************************** 1、copyPixel
作为Flash游戏开发者,整天都在跟Flash的显示效率搏斗。最近为了更好的节约效率,在下做了一些测试,得到了一些结果,同时也感到了一些问题,请诸位高手也帮忙看看!

********************************************************************

1、copyPixels,5000次,1000*590,没有lock,后addChild

? ? ? ? cost: 10828
? ? ? ? cost: 10844
? ? ? ? cost: 10625

2、copyPixels,5000次,1000*590,没有lock,先addChild

? ? ? ? cost: 10828
? ? ? ? cost: 10844
? ? ? ? cost: 10625

3、copyPixels,5000次,1000*590,有lock

? ? ? ? cost: 10766
? ? ? ? cost: 10654


======================================================
结论:
1、lock没有效果
2、先后addChild也没区别?
======================================================


4、copyPixels,5000次,128*64,没有lock,先addChild

cost: 47
cost: 47? ? ? ??

5、copyPixels,5000次,1000*590,rect(128*64),没有lock,先addChild

cost: 62
cost: 62


6、copyPixels,5000次,1000*590,rect(128*64),dest(950,0),没有lock,先addChild

cost: 31


======================================================
结论:
1、copyPixel速度和拷贝区域象素数量严格相关;
2、原始图大小有少许影响,原始图如果比较大,跟小图取一样范围,也会有些许效率损失
======================================================



7、draw,5000次,128*64,没有lock,先addChild,图片无透明度

cost: 219
cost: 219


8、draw,5000次,1000*590,没有lock,先addChild,图片无透明度

cost: 10328
cost: 10407


9、draw,5000次,128*64,没有lock,先addChild,整张图片有透明度渐变

cost: 218
cost: 218
cost: 219

10、draw,5000次,1000*590,没有lock,先addChild,整张图片有透明度渐变

cost: 11843
cost: 11610
cost: 11969

======================================================
结论:
1、draw对Bitmap有优化,越大尺寸,draw和copyPixel的区别越小 2、透明度对大图片draw效能有影响,大约是画图本身的10%,小图片可忽略 ====================================================== 11、draw,5000次,1000*590,clip(128,64),没有lock,先addChild,无透明 cost: 156 cost: 172 cost: 171 12、draw,64),没有lock,先addChild,整张图片有透明度渐变 cost: 219 cost: 219 ====================================================== 结论: 1、clip对draw性能提升显著,基本相当于clip后大小的图片的效能 2、大图clip后效果反而比同尺寸小图高?猜想是颜色原因,见下一个实验 ====================================================== 13、draw,5000次,128*64,没有lock,先addChild,图片纯色 cost: 157 cost: 172 cost: 157 14、draw,5000次,128*64,没有lock,先addChild,图片杂色 cost: 172 cost: 171 ====================================================== 结论: 1、效能和图片颜色没有关系??看来只能是和png存储结构有关了。已测试的3张同样大小的图片,纯色与杂色接近,云彩图案的最慢。 ====================================================== 15、循环用setPixel32和setPixel32逐象素设置,1000*590,1次 cost: 297 16、循环用setPixel32和setPixel32逐象素设置,1000*590,1000次 Error: Error #1502: 脚本的执行时间已经超过了 15 秒的默认超时设置。 17、循环用setPixel32和setPixel32逐象素设置,1000*590,10次,没有lock cost: 2875 18、循环用setPixel32和setPixel32逐象素设置,1000*590,10次,有lock cost: 2109 ====================================================== 结论: 1、这样搞还是比较慢的……千万不要这样搞…… 2、居然有15秒限制?………… 3、lock在这里体现了一些作用,可能因为逐象素操作对刷新的影响太大了。但是作用也没有明显到什么地步。 ====================================================== 19、draw,5000次,1000*590,目标图片500*590 cost: 5875 ====================================================== 结论: 1、如所料一般,目标区域超出的部分也是不会画的 ====================================================== ******************************************************************** 我还会持续进行各种测试,有新的结果会继续报告上来~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读