H5 的getImageData造成的大量内存开销
生活随笔
收集整理的這篇文章主要介紹了
H5 的getImageData造成的大量内存开销
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//多線程,使用多線程處理會導致內存飆升,最終導致頁面崩潰
function removeColor() {var offScreenCanvas = offScreenContext.canvas;removeColorWorker.postMessage(offScreenContext.getImageData(0, 0, offScreenCanvas.width, offScreenCanvas.height));//報錯在此行removeColorWorker.onmessage = receiveFromWorker;
}function receiveFromWorker(e){offScreenContext.putImageData(event.data, 0, 0);mContext.drawImage(offScreenContext.canvas, 0, 0);requestNextAnimationFrame(onNextFrame);
}
//單線程,同樣會占用大量內存,有時候可能會崩潰
function removeColor(){var imageData = offScreenContext.getImageData(0,0,offScreenContext.canvas.width,offScreenContext.canvas.height),//報錯在此行data = imageData.data,length = data.length;for(var i=0;i<length-4;i+=4){var average = (data[i]+data[i+1]+data[i+2])/3;data[i]= average;data[i+1] = average;data[i+2] = average;}offScreenContext.putImageData(imageData,0,0);
}
?正在尋求好的解決方式
此外還有一個問題,就是視頻播放完畢之后,程序占用的內存并不會得到釋放,證明仍然是離屏canvas在占據內存空間,得處理一下
轉載于:https://www.cnblogs.com/gangmiangongjue/articles/5896614.html
總結
以上是生活随笔為你收集整理的H5 的getImageData造成的大量内存开销的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于struts2的文件上传下载
- 下一篇: Java 中访问数据库的步骤?State