【发布时间】:2012-08-28 13:52:04
【问题描述】:
这似乎无害,但当以每秒 30 帧的速度执行 1000 多次时,它确实加起来了。我绘制了 3 种大小的圆圈,每个圆圈都有自己的填充颜色 (RGBA)。将它们绘制为图像一次,然后将 drawImage() 与数据 URL 一起使用,或者为每个 URL 执行 arc() 对我来说更快吗?
额外信息:
- 为所有圈子使用一个画布
- 上下文和画布被缓存
-
目前完全调用 arc 看起来像
this.scene.context.arc(newLocation, this.y+=this.speed/80, this.distance / 2, 0, Math.PI*2, false);
【问题讨论】:
-
如果你已经有你的代码,你可以在jsperf查看哪个版本更快
-
如果您最终使用 arc() 方法,您可以优化该行。例如,如果在函数中,将上下文设置为局部变量,或者只是作为变量,这样“this”和“scene”就不必同时查找并进行一次计算。例如 var TWOPI = Math.PI * 2