Performance 画布标记-drawarc与图像

Performance 画布标记-drawarc与图像,performance,html,canvas,Performance,Html,Canvas,我已经实现了一个canvas元素,它使用drawarc来创建气泡在背景上以各种速度上升的效果(这是一个水下主题站点,用于水下主题客户端)——它看起来非常好,我对此非常满意,但我注意到一些浏览器(特别是IE9)存在轻微的性能问题 我正在使用drawarc绘制气泡,以创建半透明的圆圈-有人能告诉我,如果将图像/精灵印在画布上,成本是高还是低(就客户端性能而言) -迈克画圆弧/圆比画图像要贵得多。绘制图像很可能是将任何东西绘制到画布上最有效的方法。我写了关于这个问题的报告。它是德语,但基本上,当使用a

我已经实现了一个canvas元素,它使用drawarc来创建气泡在背景上以各种速度上升的效果(这是一个水下主题站点,用于水下主题客户端)——它看起来非常好,我对此非常满意,但我注意到一些浏览器(特别是IE9)存在轻微的性能问题

我正在使用drawarc绘制气泡,以创建半透明的圆圈-有人能告诉我,如果将图像/精灵印在画布上,成本是高还是低(就客户端性能而言)


-迈克

画圆弧/圆比画图像要贵得多。绘制图像很可能是将任何东西绘制到画布上最有效的方法。我写了关于这个问题的报告。它是德语,但基本上,当使用arc和arc绘制圆弧时,IE9中的运算速度低于15000次/秒。在绘制图像时,每秒的操作数超过160.000次。

谢谢老兄,我现在要试试这个。好的-我用图像而不是圆弧实现了它,并且确实看到IE9的性能略有提高(不是加载,但我在这里做的不是那么密集,我相信图像方法会扩展得更好)。只需重新绘制画布中实际更改的部分,就可以加快画布绘制速度。可以通过在清除和重新绘制矩形之前使用clip设置剪裁区域来完成此操作。此外,您还可以对剪裁区域执行可见性消隐,以便仅对位于脏矩形内的项目实际调用绘制方法。这些都是众所周知的加速图形绘制的技术。但它们可能不适用于你的情况。此外,如果您有perofrmance问题,请对其进行分析,并找出您的瓶颈所在。我发现多个具有透明背景和上下文的过载画布。clearRect(x、y、w、h)最有效。例如,在《吃豆人》中,我有静态元素,例如底部画布上的迷宫,中间一层供吃豆人吃的药丸,以及顶层的动态精灵:这允许幽灵精灵在药丸上方移动,而无需重新绘制,吃豆人可以在吃了药丸后清除rect()。@DanielBaulig,链接已断开。