将图像数据传输到Chrome中的Web Worker时内存泄漏

时间:2012-08-25 03:26:14

标签: javascript html5 google-chrome memory-leaks web-worker

我使用Transferrable Object重复将图像数据从HTML5 canvas传递给Web Worker -

简明代码:

var worker = new Worker("test.js");
setInterval(function () {
    var data = context.getImageData(0, 0, canvas.width, canvas.height);

    worker.webkitPostMessage(data, [data]);
}, 100);

问题是内存使用每隔几秒就会增加一次,并且在没有调用该函数时似乎没有减少。对于内存使用率超过某个阈值的情况,由于此泄漏,chrome实际上会崩溃。我欢迎任何和所有建议,包括向Web Worker发送数据的替代方法。非常感谢!

1 个答案:

答案 0 :(得分:0)

嗯,我想这不是网络工作者。

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');

setInterval(function () {
  var data = context.getImageData(0, 0, canvas.width, canvas.height);
}, 100);

我认为这段代码提供了相同的内存泄漏。我也发现了这个问题:

  1. http://code.google.com/p/chromium/issues/detail?id=51171
  2. JavaScript memory problem with canvas