【发布时间】:2013-01-07 08:34:09
【问题描述】:
在使用 Canvas2D 进行一些非常密集的渲染时,我遇到了一些特别难以调试的问题。我使用了各种各样的东西,从 globalCompositeOperation 到多个屏幕外画布,中间还有一些 drawImage 魔法。
它在 :
上运行得非常好和流畅- Chrome (26) [OSX 10.7.5]
- Safari (6.0.2) [OSX 10.7.5]
- Firefox(18 和 20 Aurora)[OSX 10.7.5]
- Chrome (24) [Windows 7]
- Firefox (12) [Windows 7]
- Chromium (24) [Archlinux,Gnome 3]
编辑:添加了针对 Windows 7 的测试。奇怪的是,它适用于 FF12(我的双启动时有一个旧版本),但升级到 FF18 后性能肯定会受到影响。它在 Windows 上并不像在 Linux 上那么糟糕,而且 OSX 上的相同版本也可以完美运行。可能是回归?
由于某种原因,在 Firefox 和 Linux 上(我尝试了 18 和 20 Aurora),同时拖动和渲染时渲染性能很差。
如果我触发后忘记动画,它与 Chrome/Safari 相当,但如果我拖动并渲染,我通常在释放拖动后只能看到结束帧。
-
requestAnimationFrame和鼠标事件处理程序上的直接渲染都不起作用。 - 分析后,渲染部分的报告时间完全在可接受的范围内(绝对最差可达 100 毫秒),并且绝对与我在屏幕上看到的不对应。
- 我尝试通过删除一些东西来减少负载,最终报告的渲染时间低于 15 毫秒,但我看到的并没有改变。
让我感到困惑的是,它几乎可以在 Linux 上使用 Firefox 的其他任何地方运行除了。关于我应该查看的位置、错误报告或问题的解决方案有什么想法吗?
【问题讨论】:
标签: performance html canvas