画布多次绘制大图片(300kb)并调用 toDataURL 导致内存不足,可能存在内存泄漏?
如题,在画布上绘制图片后通过 `toDataURL` 导出 base64 字符串,多次操作后会导致内存不足,闪退。 以我的手机为例: 型号: iPhone 12 mini,iOS 16.2 操作1: 关闭‘使用缓存的离屏画布树’开关打开‘绘制大图片’开关点击‘添加绘图器’按钮多次(30次以上)小程序闪退提示内存不足或者微信闪退操作2: 打开‘使用缓存的离屏画布树’开关打开‘绘制大图片’开关点击‘添加绘图器’按钮多次(30次以上)小程序闪退提示内存不足或者微信闪退操作3: 打开‘使用缓存的离屏画布树’开关打开‘绘制大图片’开关点击‘添加绘图器’按钮多次(10次以上)点击‘绘制器重绘'按钮多次,使‘绘制次数’超过30次小程序闪退提示内存不足或者微信闪退操作4: 打开‘使用缓存的离屏画布树’开关关闭‘绘制大图片’开关点击‘要插入的绘图器数’,输入‘100’点击‘添加绘图器’按钮2次,使‘绘图器数量’为200点击‘绘制器重绘'按钮多次,使‘绘制次数’超过2000次小程序依旧正常[图片][图片] 以上的几个操作主要控制的变量为‘离屏画布的数量’和‘绘制图片的大小’,可以发现当离屏画布增多或者绘制图片大(320kb)时,程序在有限的绘制次数后就会崩溃。而绘制图片相对小(90kb)时,即使绘制次数达到2000也不会出现崩溃。 个人认为值得怀疑的目标是 `offscreenCanvas.toDataURL` 、 `offscreenCanvas.createImage`、`offscreenCanvas.drawImage`,似乎这两个方法返回的对象都没有及时被 GC。 如果这确实是一个 Bug 但短期无法修复的话,有没有任何方法可能手动回这些内存呢?