H5 的getImageData造成的大量内存开销
生活随笔
收集整理的這篇文章主要介紹了
H5 的getImageData造成的大量内存开销
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//多線程,使用多線程處理會(huì)導(dǎo)致內(nèi)存飆升,最終導(dǎo)致頁(yè)面崩潰
function removeColor() {var offScreenCanvas = offScreenContext.canvas;removeColorWorker.postMessage(offScreenContext.getImageData(0, 0, offScreenCanvas.width, offScreenCanvas.height));//報(bào)錯(cuò)在此行removeColorWorker.onmessage = receiveFromWorker;
}function receiveFromWorker(e){offScreenContext.putImageData(event.data, 0, 0);mContext.drawImage(offScreenContext.canvas, 0, 0);requestNextAnimationFrame(onNextFrame);
}
//單線程,同樣會(huì)占用大量?jī)?nèi)存,有時(shí)候可能會(huì)崩潰
function removeColor(){var imageData = offScreenContext.getImageData(0,0,offScreenContext.canvas.width,offScreenContext.canvas.height),//報(bào)錯(cuò)在此行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);
}
?正在尋求好的解決方式
此外還有一個(gè)問(wèn)題,就是視頻播放完畢之后,程序占用的內(nèi)存并不會(huì)得到釋放,證明仍然是離屏canvas在占據(jù)內(nèi)存空間,得處理一下
轉(zhuǎn)載于:https://www.cnblogs.com/gangmiangongjue/articles/5896614.html
總結(jié)
以上是生活随笔為你收集整理的H5 的getImageData造成的大量内存开销的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于struts2的文件上传下载
- 下一篇: django-web聊天