3

我使用Transferrable Objectcanvas反复将图像数据从 HTML5传递给 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 的替代方法。非常感谢!

4

1 回答 1

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 内存问题
于 2012-08-25T04:01:36.677 回答