Flash游戏开发:BitmapData的使用

  作为Flash游戏开发者整天都在跟Flash显示效率搏斗最近为了更好节约效率在下做了些测试得到了些结果同时也感到了些问题请诸位高手也帮忙看看!

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

  1、copyPixels5000次1000*590没有lock后addChild

  cost: 10828

  cost: 10844

  cost: 10625

  2、copyPixels5000次1000*590没有lock先addChild

  cost: 10828

  cost: 10844

  cost: 10625

  3、copyPixels5000次1000*590有lock

  cost: 10766

  cost: 10654

  

  结论:

  1、lock没有效果?

  2、先后addChild也没区别?

  

  4、copyPixels5000次128*64没有lock先addChild

  cost: 47

  cost: 47    

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

  cost: 62

  cost: 62

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

  cost: 31

  

  结论:

  1、copyPixel速度和拷贝区域象素数量严格相关;

  2、原始图大小有少许影响原始图如果比较大跟小图取样范围也会有些许效率损失

  

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

  cost: 219

  cost: 219

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

  cost: 10328

  cost: 10407

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

  cost: 218

  cost: 218

  cost: 219

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

  cost: 11843

  cost: 11610

  cost: 11969

  

  结论:

  1、draw对Bitmap有优化越大尺寸draw和copyPixel区别越小

  2、透明度对大图片draw效能有影响大约是画图本身10%小图片可忽略

  

  11、draw, 5000次1000*590clip(128,64)没有lock先addChild无透明

  cost: 156

  cost: 172

  cost: 171

  12、draw, 5000次1000*590clip(128,64)没有lock先addChild整张图片有透明度渐变

  cost: 219

  cost: 219

  

  结论:

  1、clip对draw性能提升显著基本相当于clip后大小图片效能

  2、大图clip后效果反而比同尺寸小图高?猜想是颜色原因见下个实验

  

  13、draw5000次128*64没有lock先addChild图片纯色

  cost: 157

  cost: 172

  cost: 157

  14、draw5000次128*64没有lock先addChild图片杂色

  cost: 172

  cost: 171

  

  结论:

  1、效能和图片颜色没有关系??看来只能是和png存储结构有关了已测试3张同样大小图片纯色和杂色接近云彩图案最慢

  

  15、循环用Pixel32和Pixel32逐象素设置1000*5901次

  cost: 297

  16、循环用Pixel32和Pixel32逐象素设置1000*5901000次

  Error: Error #1502: 脚本执行时间已经超过了 15 秒默认超时设置

  17、循环用Pixel32和Pixel32逐象素设置1000*59010次没有lock

  cost: 2875

  18、循环用Pixel32和Pixel32逐象素设置1000*59010次有lock

  cost: 2109

  

  结论:

  1、这样搞还是比较慢……千万不要这样搞……

  2、居然有15秒限制?…………

  3、lock在这里体现了些作用可能逐象素操作对刷新影响太大了但是作用也没有明显到什么地步

  

  19、draw5000次1000*590目标图片500*590

  cost: 5875

  

  结论:

  1、如所料目标区域超出部分也是不会画

  

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

  我还会持续进行各种测试有新结果会继续报告上来~



Tags: 

延伸阅读

最新评论

发表评论