Canvas Easeljs性能下降?
我一直在玩画架,我发现表演开始下降。在我的例子中,Chrome大约需要3秒才能达到这一点,Safari需要25秒,Firefox到处都是 问题: 我做错什么了吗? 或者这是我期望从easeljs获得的性能冲击? 范例 为了演示我所经历的性能冲击,我创建了一个简单的循环重画动画,但帧速率很快开始下降。如果我恢复到纯画布API调用,那么它将恢复性能 下面是我重画的关键片段,它选择了绘制圆的方法:Canvas Easeljs性能下降?,canvas,easeljs,Canvas,Easeljs,我一直在玩画架,我发现表演开始下降。在我的例子中,Chrome大约需要3秒才能达到这一点,Safari需要25秒,Firefox到处都是 问题: 我做错什么了吗? 或者这是我期望从easeljs获得的性能冲击? 范例 为了演示我所经历的性能冲击,我创建了一个简单的循环重画动画,但帧速率很快开始下降。如果我恢复到纯画布API调用,那么它将恢复性能 下面是我重画的关键片段,它选择了绘制圆的方法: if ( counter.fps > 60) { circle.graphics.begi
if ( counter.fps > 60) {
circle.graphics.beginFill('green')
circle.graphics.drawCircle(0,0, w / 10)
circle.graphics.endFill();
stage.update();
} else {
context.beginPath();
context.arc(circle.x, circle.y, w / 10, 0, 2 * Math.PI, false);
context.fillStyle = "darkred";
context.fill();
}
有关演示,请参阅此JSFIDLE:
我尝试过类似结果的变体:
requestAnimationFrame和pollyfill
慢速fps
2012年年中macbook air上OSX 10.8.2性能的大致时间表
铬合金v26.0.1410.43
0-3s=90fps
3s=fps开始下降
6s=fps达到60fps
Safari v6.0.2 8536.26.17
0-20s=90fps
20s=fps开始下降
35s=fps达到60fps
火狐v20
fsFiddle托管:完全不稳定
本地托管:与Chromes性能非常相似,但更不稳定
EaselJS图形会被保留,所以每个帧都会向图形队列添加另一个圆定义。因此,在1000次重画呼叫后,它每次画1000个圆圈 使用Graphics.clear重置绘制队列,或者只绘制一次圆并移动建议的相应形状 这是你的小提琴的一个改进版本,它为我带来了99 fps的速度:
+1,以便更好地捕捉OP的故障。顺便说一句,你真的与CreateJS有关联吗。如果是这样,我喜欢你的代码,很高兴认识你!谢谢我也很高兴见到你@markE。我是格兰特·斯金纳图书馆的原创者——很高兴你喜欢它们。