我正在构建一个应用程序,我想在其中重播多个用户(最多 20 个)的移动。每个用户都有一个 X、Y 位置列表(范围从 20 到 400 个位置)。重播时间为 1-10 分钟。
回放以 8 FPS 绘制,这就是我所需要的。在每一帧,我删除显示用户移动的图层,并将所有内容重新绘制到下一个时间点。
此应用程序使用大量内存,如果我重新运行重播,内存消耗会不断增加(高达 8 GB)。我曾尝试在 Google Chrome(第 27 版)中使用 Profiler,但似乎内存中存在层的堆积,即使我经常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()
不会从内存中删除图层吗?还是我需要以完全不同的方式处理这个问题?