ios 7.1.1 canvas drawImage内存泄漏

时间:2014-06-24 13:10:35

标签: javascript ios canvas memory-leaks

如果我

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

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

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

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

至于解决方法,任何人都知道一种强制垃圾收集/清除内存构建的好方法。

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

2 个答案:

答案 0 :(得分:0)

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

编辑:嗯......实际上我把它拿走了。我所拥有的是音频内存泄漏。

答案 1 :(得分:0)

我在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;

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

相关问题