すでに同様の質問がありますが、問題は getImageData 自体が原因ではないとして解決されています。これは間違いなく getImageData の問題です。そうでなければ、何かをひどく誤解しています。
次のコードは、Chrome 23.0 (Linux) で 1 秒あたり約 0.5 メガのメモリを消費し、Firefox ではよりゆっくりではありますがリークします。ローカル変数またはグローバル変数への割り当ては役に立ちません。
何か不足していますか?これはバグですか?
<html>
<head>
<script>
function tick() {
document.getElementById("canvas1").getContext('2d').getImageData(0, 0, 300, 150);
}
setInterval(tick, 10);
</script>
</head>
<body>
<canvas id="canvas1" />
</body>
</html>