Linux上的Firefox使用Canvas2D表现不佳

时间:2013-01-23 18:37:49

标签: performance html5 canvas

在使用Canvas2D做一些非常密集的渲染时,我只是特别难以调试。我使用各种各样的东西,从globalCompositeOperation到多个离屏画布,中间有一些drawImage魔法。

它的工作非常精细和顺畅:

  • Chrome(26)[OSX 10.7.5]
  • Safari(6.0.2)[OSX 10.7.5]
  • Firefox(18和20极光)[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毫秒),并且绝对不符合我在屏幕上看到的内容。
  • 我尝试通过移除一些东西来减少负载,最终报告的渲染时间低于15ms,但我看到的并没有改变。

令我感到困惑的是,除了以及Linux上的Firefox之外,它几乎可以在其他任何地方使用。知道我应该在哪里看,错误报告或解决我的问题?

1 个答案:

答案 0 :(得分:3)

由于此问题,我已完全切换到Linux上的Chrome。它源于他们使用的旧的2d渲染引擎,称为Cairo,它已经过时了。 Azure将取代这个引擎,他们基本上完成了除linux之外的所有平台。

http://blog.mozilla.org/joe/2011/04/26/introducing-the-azure-project/ https://bugzilla.mozilla.org/show_bug.cgi?id=781731