0
我正在構建一個應用程序,我想重播幾個用戶(最多20個)的移動。 每個用戶都有一個X,Y位置列表(範圍從20到400個位置)。重播範圍從1-10分鐘。KineticJS在刪除和添加圖層時消耗大量內存
重播以8 FPS繪製,這是我所需要的。在每一幀我刪除顯示用戶移動的圖層,並將所有內容重新繪製到下一個時間點。
此應用程序使用大量內存,如果我重新運行重播,內存消耗會不斷增加(高達8 GB)。我曾嘗試在谷歌瀏覽器(版本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()
,他們不從內存中刪除該層?或者我需要以完全不同的方式處理這個問題?