Skip to content

ObservableItemが使用するメモリ量が多い #247

Description

@fukudayasuo

ObservableItemの作成するFWコードを見直す。
ObservableItemはDataModelと共通した処理を同じ個所で行うために、DataModelで作成するDataItemコンストラクタを利用しており、ObservableItemを作成するたびにDataItem生成のためのコンストラクタを作成し、ObservableItemからそのコンストラクタが参照できるようになっている。

そのため、ObservableItem1つにつきDataModel1つと同じくらいのメモリを使用していると考えられる。

とりあえず、ObservableItemを作るときにDataItemコンストラクタを作成して使用するのはそのままにして、そのコンストラクタがObservableItemから参照できない(使いきり)になるようにする。

// 現在のcreateObservableItem
// コンストラクタを新規に生成してをそれをnewして返している
return new (createDataItemConstructor(schema, itemValueCheckFuncs))();

// これを以下のように変更
var item =  new (createDataItemConstructor(schema, itemValueCheckFuncs))();
return new ObservableItem(item);

//...
function ObservableItem(item){
// itemから必要なプロパティをコピー
this[prop] = item[prop];
...
}

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions