【问题标题】:Drawing image to newly created canvas or to a canvas in the buffer将图像绘制到新创建的画布或缓冲区中的画布
【发布时间】:2012-11-07 11:07:43
【问题描述】:

我应该使用什么:绘制到新创建的画布document.createElement("canvas") 或使用预初始化的画布元素从缓冲区绘制到画布?实现最大性能和最小内存消耗的最佳方法是什么?这两种方法之间有明显的区别吗?垃圾收集器会删除所有使用document.createElement("canvas") 创建的临时画布吗?

【问题讨论】:

标签: javascript performance html html5-canvas


【解决方案1】:

<canvas> 元素的创建方式(Javascript、HTML)没有性能差异。

无论您如何创建<canvas> 元素都会产生相关成本,因此您不希望在绘制循环中创建许多元素。这个成本是特定于浏览器的,取决于实现,但它可能很高。此外,这可能取决于您是刚刚创建元素还是第一次在其上绘制。

对于实际的绘图操作性能,画布是在屏幕上还是在屏幕外(后台缓冲区)可能很重要。此外,直接访问像素数据(获取数据、放置数据)也会产生相关成本,因为您可能需要先将后台缓冲区从 GPU RAM 下载到 CPU RAM。

【讨论】:

    猜你喜欢
    • 2013-11-01
    • 1970-01-01
    • 2012-11-09
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    相关资源
    最近更新 更多