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