KineticJS を使用して iOS アプリ (UIWebView) を構築しています。メモリ使用量を理解するためだけに、簡単なサンプル アプリを作成しました。1 つのステージを作成し、それに 100 のレイヤーを追加し、各レイヤーに 1 つの線を追加しました。ステージとレイヤーに割り当てられたメモリの量は、レイヤーあたり約 6 Mb または 600 Mb でした。次に、setInterval 関数で各レイヤーを削除するコードを追加し、念のため stage.reset() を呼び出しました。プロファイリングでは、メモリ使用率は減少しませんでした。
コードを見直して、レイヤーへの参照を保持していないことを確認しました。あるテストでは、ステージも逆参照しましたが、割り当てられたメモリの値は変わりません。これはバグでしょうか、それとも KineticJS を使用してメモリを再利用する他の方法はありますか?