0

私はRxで新鮮です.Observableバッファイベントデータのようです。cold observableまたはそれにより replay、データストリームは、長時間経っても後のオブザーバーに送信されます。しかし、いつガベージされるのでしょうか? また、Rx を使用する場合、メモリをどのように処理する必要がありますか?

4

1 に答える 1

1

ガベージ コレクションは、Java の通常の規則に従います。それへのハード参照がある場合、それは永久に存続します。これは、フィールドに Observable が割り当てられている場合、その Observable はガベージ コレクションの対象にならないことを意味します。それが replay() 演算子の結果である場合、または replay() 演算子がその上流にある場合、replay() 演算子のすべてのデータもメモリに保持されます。

replayタイムアウトまたはカウントによってメモリに保持される参照オブジェクトを制限するのに役立つバリアントがあります。

SoftReferenceオブザーバブル自体にa を使用することもできます。

于 2016-03-27T20:53:50.230 に答える