为什么drawImage在Safari中的表现比Chrome或Firefox快得多?

时间:2012-03-23 14:40:55

标签: javascript canvas drawimage requestanimationframe

我制作了一个有趣的HTML画布可视化器,我注意到它在Chrome中运行得非常糟糕,在Firefox中非常糟糕,但在Safari中非常惊人,包括iPhone和iPad!

任何人都可以解释原因吗?

我认为代码应该相当简单,但基本上我是为鼠标(或触摸)位置绘制点,然后使用drawImage将画布复制到临时画布。从那里我清除显示画布,然后复制临时画布(4次),但应用一些东西,如旋转,偏移,透明度和缩放(以及使用一些不同的globalCompositeOperations),都使用drawImage。总的来说,drawImage在每个循环中被调用5次。

您可以在此处查看演示:http://lakenen.com/vis.html

非常感谢任何见解!

PS。如果可以的话,可以在iPad上试试这个;多点触控非常整洁:)

1 个答案:

答案 0 :(得分:0)

由于性能分析器在Safari和Chrome中非常相似,因此您应该能够自行确定。您的演示在我的计算机上的Safari和Chrome上运行正常。

无论如何,我无法告诉你为什么drawImage在Chrome上的表现比Safari差,只是当图像无法加载然后被绘制时它会否则Chrome在Windows上显得更快。 / p>

Here's a simple jsperf I made a while ago.似乎在我的Windows 7机器上显示chrome 19的运行速度是safari的两倍。