RxJava / Scala Observable垃圾如何使用数据?

时间:2016-03-26 10:59:30

标签: rx-java reactive-programming rx-scala

我在Rx新鲜,我似乎有Observable缓冲事件数据。使用cold observablereplay,即使很久以后,数据流也会向后来的观察者发射。但是什么时候会被打扮?另外,使用Rx时应该注意什么?

1 个答案:

答案 0 :(得分:1)

垃圾收集遵循Java的常规规则:如果有一个硬引用,它将永远存在。这意味着如果您将Observable分配给某个字段,则该observable将不符合垃圾回收的条件。如果这是replay()运算符的结果 - 或者如果replay()运算符在它的上游 - 那么replay()运算符中的所有数据也保存在内存中。

replay个变种可以帮助您限制在超时或计数时保留在内存中的引用对象。

您也可以使用SoftReference来观察自己。