当我在firefox中运行web worker时 工人脚本:
self.addEventListener('message', function(e){
var sBufferData = source buffer of imageData( Uint8ClampedArray )
var resultBuffer = result buffer of operation( Uint8Array )
for(...) //double for loop operate
for(...) //get resultBuffer array
self.postMessage(resultBuffer);
resultBuffer = sBufferData = undefined;
self.close(); //web-worker close itself
}, false);
主要剧本:
var imageWorker = new Worker("imageWorker.js");
imageWorker.postMessage(source buffer of imageData);
imageWorker.onmessage = function(e) {
//operation...
imageWorker.terminate(); //web-worker terminate in main thread
e.data = imageWorker = undefined;
}
我的图片是 3246 * 2448图片,当我使用网络工作者时,FireFox会出现内存泄漏问题。
每次处理一张图片需要平均200MB 。 之后,FireFox将保持200MB 内存占用。
因此,每次处理需要200MB才能内存不足。
只有Firefox 有问题。它为什么不释放记忆?我不明白。有什么想法吗?