【问题标题】:In rxjs, is there an overhead for using a BehaviorSubject to store data vs a javascript object?在 rxjs 中,与 javascript 对象相比,使用 BehaviorSubject 存储数据是否存在开销?
【发布时间】:2017-12-16 12:34:08
【问题描述】:

如果我有大量数据,并且我想将其保存在现代 Angular 中的单例服务中,例如,将数据存储为 BehaviorSubject 是否会产生内存或其他类型的性能损失,如下所示:

property = new BehaviorSubject(lotsOfData)

而不是将lotsOfData 本身作为属性的值进行持久化:

property = lotsOfData

【问题讨论】:

  • 简答:否。
  • 要获得正确答案,您应该提供以下信息:a) 您想要存储什么样的数据结构,b) 您打算如何处理数据/对象。
  • 基本上我想要一个名称-值数据存储,有点像简化版 ngrx。因此,我与一位同事的问题是,将静态数据(名称值对)存储为行为主题而不是直接数据是否存在性能惩罚,并保留在单例存储服务中。

标签: javascript angular rxjs behaviorsubject


【解决方案1】:

BehaviorSubject 类非常紧凑。它所做的只是将当前值存储为私有属性,也可以作为公共value 只读属性使用。

它几乎没有开销,也不处理值,因此数据量无关紧要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2011-10-04
    • 2018-11-04
    • 2010-12-04
    相关资源
    最近更新 更多