В настоящее время разрабатывается проект анимации на основе JavaScript.
Я заметил, что правильное использование setInterval()
, setTimeout()
и даже requestAnimationFrame
выделяет память без моего запроса и вызывает частые вызовы сбора мусора. Дополнительные вызовы GC = мерцание: - (
Например; когда я выполняю следующий простой код, вызвав init() в Google Chrome, выделение памяти + сборка мусора прекрасна в течение первых 20-30 секунд...
function init()
{
var ref = window.setInterval(function() { draw(); }, 50);
}
function draw()
{
return true
}
Как-то, через минуту или около того, начинается странное увеличение выделенной памяти! Поскольку init() вызывается только один раз, , в чем причина увеличения объема выделенной памяти?
(Редактирование: снимок экрана с хромом)
ПРИМЕЧАНИЕ # 1: Да, я попытался вызвать clearInterval() перед следующим setInterval(). Проблема остается прежней!
ПРИМЕЧАНИЕ # 2: Чтобы изолировать проблему, я сохраняю этот код простым и глупым.