HTML画布的'source-over'和'destination-over' globalCompositeOperation之间的性能差异

Posted

技术标签:

【中文标题】HTML画布的\'source-over\'和\'destination-over\' globalCompositeOperation之间的性能差异【英文标题】:Performance difference between 'source-over' and 'destination-over' globalCompositeOperation for HTML canvasHTML画布的'source-over'和'destination-over' globalCompositeOperation之间的性能差异 【发布时间】:2015-10-06 18:19:08 【问题描述】:

查看了用于在 2D 画布上绘图的各种 globalCompositeOperation options,我突然想到 destination-over 与默认的 source-over 基本相同,但元素是反向绘制的。

我想知道是否有人知道在画布计算合成并绘制像素时这两个操作之间是否存在性能差异。

【问题讨论】:

您是否尝试过跨各种浏览器进行基准测试:在 jsperf.com 中创建一个测试并将链接粘贴给您的朋友 JSPerf 仍然失败!我可能会自己尝试这两种方法并进行眼球测试。我会尽快发布我的结果。 Aaaaw 废话......这是意料之中的,因为它“太容易”使用 从我的测试用例中,我无法用肉眼观察到任何显着的性能差异。如果有人好奇,在我的测试中,我在 iPad 上将每帧约 5 个 1024x768 PNG 图像合成到 1024x768 画布上,内存中总共有约 50 个相似的图像纹理。两种方法的表现同样不稳定!减少内存中的总图像元素数量可以提高帧速率。 【参考方案1】:

如果有人感兴趣,我确实设置了一个 jsPerf 来测试它。根据我的测试,source-over 实际上更快!

jsPerf 测试可以在这里找到:http://jsperf.com/canvas-source-over-vs-destination-over/2

【讨论】:

以上是关于HTML画布的'source-over'和'destination-over' globalCompositeOperation之间的性能差异的主要内容,如果未能解决你的问题,请参考以下文章

图解DES3DES和AES加密算法

(iOS)Base64加密和DES加密以及JAVA和iOS中DES加密统一性问题

使用C# DES解密java DES加密的字符串

java 的3DES解密和加密

裁剪画布/导出具有特定宽度和高度的 html5 画布

缩放和平移 HTML5 画布 - 库