/ / KineticJSレイヤーの削除と追加時の高メモリ消費 - パフォーマンス、キャンバス、html5-キャンバス、キネティクス、メモリ消費

キャンバス、html5-キャンバス、kineticjs、メモリ消費量、レイヤーの削除と追加時の高メモリ消費

私は私がしたいアプリケーションを構築しています複数のユーザーの動きを再生します(最大20人)。 各ユーザーには、X、Yポジション(20〜400ポジションの範囲)のリストがあります。リプレイの範囲は1〜10分です。

リプレイは私が必要とするすべての8FPSで描かれています。各フレームで、ユーザーの動きを示すレイヤーを削除し、次の時点まですべてを再描画します。

このアプリケーションは、多くのメモリを使用し、私がリプレイを再実行すると、メモリ消費量は増加し続けます(最大8 GB)。私は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()、彼らはメモリからレイヤーを削除しないのですか?あるいは、私はこれを全く違う方法で扱う必要がありますか?

回答:

回答№1は1

はい。 "Remove"は親コンテナから削除します。しかし、オブジェクトはまだ存在します。代わりに "破壊"を使用しなければなりません。