2017-03-09 36 views
0

我們正在爲Angular應用程序實現ngRedux。這一切都很好,但我擔心:內存使用情況,特別是對於移動。具有大數據收集和內存問題的ngredux狀態

我們的商店狀態對象看起來是這樣的:

{ 
    leads : [], 
    filters: [], 
    applictionStatuses: [], 
} 

讓我們對我們的用戶選擇導線將抓住從我們的API 30.000引線(整年爲例)的列表中datefilter說。

據我瞭解終極版,狀態對象將被克隆,然後下一個對象會看起來像

{ 
    leads : [ {object}, {object} ...], 
    filters: [ dateRange: { start: {date}, end: {end} }], 
    applictionStatuses: [], 
} 

引線在當前狀態下的對象將持有30.000記錄。 當用戶更改日期過濾器時,將不會更新狀態並使用新的日期過濾器創建新狀態。它將抓取更多或更少的記錄,並將其轉化爲潛在客戶。

理論上的狀態對象可能看起來像:

{ 
    leads : [ {object} ... times 40.000 ], 
    filters: [ dateRange: { start: {date}, end: {end} } ], 
    applictionStatuses: [], 
} 

這是不是意味着,在這個時候,在內存中會有存儲共有0 + 30.000 + 40.000 =引線引線70.000 3個狀態在記憶中。 任何進一步的狀態變化都會重複狀態和導致。

只有等到我做了承諾和壓扁的狀態,我會佔用鉛記錄了大量的內存。

有沒有搞錯,我的推理或者是這個東西是不可避免的終極版?

我們可以決定採取引出了Redux店或放在一個單獨的存儲,以便有沒有與所有這些鉛對象儘可能多狀態對象。

非常感興趣的任何人的意見或合併。

歡呼聲

回答