Performance KineticJS移除和添加层时内存消耗高
我正在构建一个应用程序,希望在其中回放多个用户(最多20个)的移动。 每个用户都有一个X、Y位置列表(从20到400个位置)。重播时间为1-10分钟 重播以8帧/秒的速度进行,这就是我所需要的。在每一帧中,我都会删除显示用户移动的图层,并重新绘制所有内容,直到下一个时间点 这个应用程序使用了大量内存,如果我重新运行replay,内存消耗会不断增加(高达8GB)。我曾尝试在Google Chrome(版本27)中使用探查器,尽管我不断地Performance KineticJS移除和添加层时内存消耗高,performance,canvas,html5-canvas,kineticjs,memory-consumption,Performance,Canvas,Html5 Canvas,Kineticjs,Memory Consumption,我正在构建一个应用程序,希望在其中回放多个用户(最多20个)的移动。 每个用户都有一个X、Y位置列表(从20到400个位置)。重播时间为1-10分钟 重播以8帧/秒的速度进行,这就是我所需要的。在每一帧中,我都会删除显示用户移动的图层,并重新绘制所有内容,直到下一个时间点 这个应用程序使用了大量内存,如果我重新运行replay,内存消耗会不断增加(高达8GB)。我曾尝试在Google Chrome(版本27)中使用探查器,尽管我不断地remove()删除旧层,但内存中似乎存在层的累积 下面的代码
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()
,它们不是从内存中删除层吗?还是我需要以完全不同的方式处理这个问题?是的。“删除”正在从父容器中删除。但对象仍然存在。你必须用“销毁”来代替