我有一个示例web-worker画布更新脚本正在运行,但我注意到它每隔几秒就会停止大约200ms.通常的循环时间约为15ms.
我猜这是垃圾收集 - 它看起来像是分析器.
http://codepen.io/SarahC/pen/bgBoMM
我认为这是在这个功能:
function nextFrame(){
timeChart.start();
workersWorking = workerCount;
var stripHeight = ~~( h / workerCount );
for(var i = 0; i < workerCount; i++){
var localImageData = ctx.getImageData(0, stripHeight * i, w, stripHeight); /// This needs putting in constant memory.... GC takes ages here.
workers[i].postMessage({imageData: localImageData, YPosition: stripHeight * i, threadNumber: i});
}
}
Run Code Online (Sandbox Code Playgroud)
如果这个位正在制作所有的垃圾内存,我不知道我能做些什么来继续为这些数据块使用相同的内存区域.