Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance KineticJS移除和添加层时内存消耗高_Performance_Canvas_Html5 Canvas_Kineticjs_Memory Consumption - Fatal编程技术网

Performance KineticJS移除和添加层时内存消耗高

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()删除旧层,但内存中似乎存在层的累积 下面的代码

我正在构建一个应用程序,希望在其中回放多个用户(最多20个)的移动。 每个用户都有一个X、Y位置列表(从20到400个位置)。重播时间为1-10分钟

重播以8帧/秒的速度进行,这就是我所需要的。在每一帧中,我都会删除显示用户移动的图层,并重新绘制所有内容,直到下一个时间点

这个应用程序使用了大量内存,如果我重新运行replay,内存消耗会不断增加(高达8GB)。我曾尝试在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()
,它们不是从内存中删除层吗?还是我需要以完全不同的方式处理这个问题?

是的。“删除”正在从父容器中删除。但对象仍然存在。你必须用“销毁”来代替