如果我
ctx.drawImage(anotherCanvas, clipX, clipY, clipW, clipH, x, y, w, h);
在动画帧上,我似乎得到了巨大的内存泄漏,直到IOS safari或chrome崩溃。如果我不剪辑画布并直接画上它,就没有泄漏。
ctx.drawImage(anotherCanvas, x, y, w, h);
问题是我需要能够剪辑。 这似乎只发生在IOS上。有人知道为什么会这样吗?
至于解决方法,任何人都知道一种强制垃圾收集/清除内存构建的好方法。
任何和所有帮助非常感谢。谢谢:))
答案 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;
我不知道为什么但是使用这些值,图像质量会降低,但页面不会再崩溃。