concatMap
,flatMap
とswitchMap
の違いはわかりますが、ストリームが1つのアイテムのみを出力して完了するとどうなりますか?この場合、これらの2つの演算子は機能的に(意図しない)、同じですが、パフォーマンスはどうですか?入力が単一のアイテムのみを出力する場合、どのオペレータがより多くのリソースを必要としますか?ほとんどの場合、関連性がある場合、出力も単一項目になります。 concatMap
とflatMap
ソースはスカラー(すなわち、just
)として識別された場合、最新のRxJava 1.xでconcatMap、flatMap、switchMap単一項目の場合
2
A
答えて
4
は、オペレータは、完全より低いオーバーヘッドを有するScalarSynchronousSource.scalarFlatMap
介してインスタンス化が、Observable
カスタム内部により置換されていませんオペレーター。 switchMap
は同じことをすることができますが、この場合はまだ最適化されていません(価値がないかもしれません)。
そうでなければ、通常のObservableが単一のアイテムのみを放出するかどうかを検出できないため、演算子はすべての内部動作を実行します。 Single
を使用すると、1つのアイテムまたはエラーが発生したソースで作業することができます。
JMHのベンチマークがたくさんありますが、1つの要素ソースとこれらの演算子を比較するためのベンチマークがあるかどうかはわかりません。たぶん私は1つを追加し、結果を投稿します。
編集
Hereは、比較ベンチマークです。
関連する問題
- 1. Wagtail StreamFieldの単一項目
- 2. MongoDBのクエリの単一のアレイ項目
- 3. ConvertTo-JSON単一項目の配列
- 4. Rails 3.単一項目のクエリ
- 5. 更新単一のリスト項目RXJava
- 6. リストから単一項目を表示
- 7. tListBoxで改行した単一項目
- 8. MYSQLdb - Pythonで単一項目を選択
- 9. チェックボックスのチェック項目チェックボックススクロールの場合
- 10. 配列をflatMapの項目のシーケンスに変換する
- 11. 項目がチェックされていない場合、一部のコンテキストメニュー項目を無効にする
- 12. 同一の項目
- 13. 値が配列または単一項目の場合、C#DataContractJsonSerializerが失敗する
- 14. セッションが等しい項目値の場合、htmlの一部を表示
- 15. 最初の項目の背景色を変更した後、一部の項目の後に別の項目も変更された場合
- 16. メニューカテゴリ項目。ショートパーマリンクの単語
- 17. 単一のuitoolbarまたはナビゲーションバーの他のuibarbutton項目
- 18. プロジェクト単一のアレイ項目のMongoDBのC#
- 19. 単一のログアウトの場合の指定
- 20. 単一テーブル継承の場合のフォームヘルパー
- 21. ListView +各項目の単一のテキストビュー=余分なガベージコレクション
- 22. linq文のリストに単一の項目を追加する
- 23. JavaFXのは、コンボボックスから単一の項目を削除する
- 24. 単一の商品ページでSKUのカスタム項目値を表示
- 25. 明確な単一の項目に私のコードで
- 26. データベース設計:単一項目の複数の状態
- 27. simple-html-dom-parserで$ elementの単一項目を返します。
- 28. モデルフォーム上の単一項目をオーバーライドする方法
- 29. amp-live-listで単一の同じ項目を更新する
- 30. Android Espresso - 同じ項目を含む単一のリスト(AmbiguousViewMatcherException)
私の場合、 'switchMap'または' concatMap'のどちらが最善でしょうか? – DariusL
concatMapは、flatMapが単一のソースを排水するためのオーバーヘッドを追加するため、はるかに優れています。 – akarnokd