2017-03-01 21 views
4

ガーベジコレクションはどのくらい正確に機能しますか。私たちは皆、reduxが不変性を促進することを知っています。したがって、古い状態のインスタンスはどうなりますか?私のようなケースを持っている場合は、私の減速で例えば :私はMY_ACTIONアクション100回を発射する場合は今reduxガベージコレクションはどのように機能しますか?

... 
case 'MY_ACTION': 
    return state.set('name', action.name) 
... 

は、コードが新しいオブジェクトを100回を作成します。

私の質問は、もはや使用されていない以前の状態オブジェクトに何が起こるかです。彼らは何をするべきかを決めるためにjavascript/browserガベージコレクタに残されますか?はいの場合、これはパフォーマンス問題ではありません。つまり、多くの古くなった '状態'オブジェクトがjavascriptガベージコレクタの負荷を増加させ、コードのパフォーマンスを低下させることはありませんか?

+0

JSコードからメモリを手動で消去する方法はありませんし、ガベージコレクタにあなたのスケジュールにそれをさせるための 'window.runGC()'メソッドもありません。 – nnnnnn

+0

右。しかし、私は、製錬者がこれを考慮に入れて何らかの形でそれを処理していたに違いないと思っています。 –

答えて

3

Redux自体はシンプルな状態管理ライブラリです。ガベージコレクションに関係するものは、Javascriptエンジンによって処理されます。そうではありません、Reduxの作成者は、ガベージコレクションはReduxライブラリ自体とは関係がないため、これを考慮しませんでした。

はい、不変のデータ処理は直接的な突然変異より多くのオブジェクトを生成しますが、JSエンジンはそれをうまく処理します。

関連する問題