0
私はRxで新鮮です、私はObservableバッファイベントデータのようです。 cold observable
またはreplay
とすると、データストリームは後で長い時間後でも観測者に放出されます。しかし、それが駄目になる時は?さらに、Rxを使うときには何が気になるのでしょうか?RxJava/Scala Observableガベージはどのようにデータを使用しましたか?
私はRxで新鮮です、私はObservableバッファイベントデータのようです。 cold observable
またはreplay
とすると、データストリームは後で長い時間後でも観測者に放出されます。しかし、それが駄目になる時は?さらに、Rxを使うときには何が気になるのでしょうか?RxJava/Scala Observableガベージはどのようにデータを使用しましたか?
ガベージコレクションはJavaの通常のルールに従います。ハードリファレンスがある場合は永遠に保持されます。つまり、オブザーバブルがフィールドに割り当てられている場合、そのオブザーバブルはガベージコレクションの対象になりません。これがreplay()演算子の結果である場合、またはreplay()演算子がその上流にある場合、replay()演算子のすべてのデータもメモリに保持されます。
タイムアウトまたはカウントのいずれかでメモリ内に保持される参照オブジェクトを制限するのに役立つバリアントがreplay
あります。
また、観測対象自体にSoftReference
を使用することもできます。
さらに検索すると、このトピックの参照の説明がほとんど見つかります。通常のワークフローと比較して、追加のメモリを使用するRxスタイルの量はいくらですか?カウント可能なObservableの使用量の量子化は、マップなどの操作を含んでいますか?アドバイスありがとうございます。 – LoranceChen