Я создаю приложение, в котором я хочу воспроизвести движение нескольких пользователей (до 20). Каждый пользователь имеет список позиций X, Y (от 20 до 400 позиций). Повтор варьируется от 1 до 10 минут.KineticJS высокое потребление памяти при удалении и добавлении слоев
Повтор рисуется на 8 FPS, что я и требую. В каждом кадре я удаляю слой, показывающий движение пользователя, и перерисовываю все до следующего момента времени.
Это приложение использует много памяти, и если я повторно запускаю повтор, потребление памяти увеличивается (до 8 Гб). Я пробовал использовать Profiler в Google Chrome (версия 27), и, похоже, в памяти накопилось множество слоев, хотя я постоянно remove()
старых слоев.
В следующем коде показан быстрый макет того, что делает приложение.
function draw()
{
stage.removeChildren();
var userLayer = new Kinetic.Layer();
/*
iterate all data and create lines to signify the movement of a user,
and add it to userLayer
*/
stage.add(userLayer);
}
setInterval(draw, 125); // 8 FPS
Мой вопрос, stage.removeChildren()
, а также Kinetic.Layer().remove()
, они не удалить слой из памяти? Или мне нужно справиться с этим совершенно по-другому?