【问题标题】:ios 7.1.1 canvas drawImage memory leakios 7.1.1 画布drawImage内存泄漏
【发布时间】:2014-06-24 13:10:35
【问题描述】:

如果我

    ctx.drawImage(anotherCanvas, clipX, clipY, clipW, clipH, x, y, w, h);

在动画帧上,我似乎得到了巨大的内存泄漏,直到 IOS Safari 或 chrome 崩溃。如果我不剪裁画布直接画出来,就没有泄漏。

    ctx.drawImage(anotherCanvas, x, y, w, h);

问题是我需要能够剪辑。 这似乎只发生在IOS上。有人知道为什么会这样吗?

至于解决方法,有没有人知道强制垃圾收集/清除内存堆积的好方法。

非常感谢任何和所有帮助。谢谢:)

【问题讨论】:

    标签: javascript ios canvas memory-leaks


    【解决方案1】:

    我也遇到过这个问题。我认为这是 7.1.1 的错误。至于解决方法——你刚刚说过。 :\

    编辑:嗯...实际上我收回了。我遇到的是音频内存泄漏。

    【讨论】:

    • 是的,好像是这样。不幸的是,我需要能够剪辑。
    • 一个缓慢的解决方法,直到 Apple 解决这个可怕的问题 - 每像素复制。
    【解决方案2】:

    我在 IOS 9.0.1 上遇到同样的问题

    我发现的唯一解决方法是减小“anotherCanvas”的大小

    var maxRes = Math.min(canvas.width(), canvas.height());
    
    var ratio = Math.min(
        ratioWidth = maxRes / anotherCanvas.width,
        ratioHeight = maxRes / anotherCanvas.height
    );
    anotherCanvas.width = anotherCanvas.width * ratio;
    anotherCanvas.height = anotherCanvas.width * ratio;
    
    clipX = clipX * ratio;
    clipY = clipY * ratio;
    clipW = clipW * ratio;
    clipH = clipH * ratio;
    

    我不知道为什么,但是使用这些值,图像质量会降低,但页面不再崩溃。

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多