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. MongoDBのクエリの単一のアレイ項目
- 2. 更新単一のリスト項目RXJava
- 3. Rails 3.単一項目のクエリ
- 4. ConvertTo-JSON単一項目の配列
- 5. tListBoxで改行した単一項目
- 6. MYSQLdb - Pythonで単一項目を選択
- 7. 値が配列または単一項目の場合、C#DataContractJsonSerializerが失敗する
- 8. 最初の項目の背景色を変更した後、一部の項目の後に別の項目も変更された場合
- 9. 単一のuitoolbarまたはナビゲーションバーの他のuibarbutton項目
- 10. プロジェクト単一のアレイ項目のMongoDBのC#
- 11. データベース設計:単一項目の複数の状態
- 12. JavaFXのは、コンボボックスから単一の項目を削除する
- 13. ListView +各項目の単一のテキストビュー=余分なガベージコレクション
- 14. 単一の商品ページでSKUのカスタム項目値を表示
- 15. 単一テーブル継承の場合のフォームヘルパー
- 16. リストビュー内の単一行項目を更新する
- 17. Iは、3D numpyのアレイ有する単一インデックス項目
- 18. simple-html-dom-parserで$ elementの単一項目を返します。
- 19. マトリックス内の単一行に項目をフリップ
- 20. Firebaseの単一項目を削除する
- 21. Android Espresso - 同じ項目を含む単一のリスト(AmbiguousViewMatcherException)
- 22. MongoDB findOneと単一項目の$ inを使用した検索
- 23. XMLパーサ、一つの項目
- 24. concatMapの説明
- 25. リストビューのナビゲーションドロワーダイアログボックスの場合の2つのリスト項目
- 26. jqueryの - 特定の項目が選択オプションの場合
- 27. 単一項目でIterableインターフェイスを実装する
- 28. 単一選択モードから選択項目を取得listview - android
- 29. 単一引用符で項目を照会するハンドリング
- 30. angularfire2クエリから単一項目を表示
私の場合、 'switchMap'または' concatMap'のどちらが最善でしょうか? – DariusL
concatMapは、flatMapが単一のソースを排水するためのオーバーヘッドを追加するため、はるかに優れています。 – akarnokd