目前正在开发一个基于JavaScript的动画项目。
我注意到,正确使用setInterval()
、setTimeout()
甚至requestAnimationFrame
都会在没有请求的情况下分配内存,并导致频繁的垃圾收集调用。更多GC调用=闪烁:-(
例如,当我在Google Chrome中调用init()来执行下面的简单代码时,内存分配+垃圾回收在最初的20-30秒内是可以接受的……
function init()
{
var ref = window.setInterval(function() { draw(); }, 50);
}
function draw()
{
return true
}
不知何故,在一分钟左右的时间内,分配的内存开始奇怪地增加!由于init()只调用一次,因此分配的内存大小增加的原因是什么?
(编辑:上传的chrome截图)
注意#1:是的,在下一个setInterval()之前,我已经尝试过调用clearInterval()。问题还是一样的!
注意#2:为了隔离问题,我将上面的代码保持简单和愚蠢。
https://stackoverflow.com/questions/14034107
复制相似问题