問題タブ [rx-scala]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scalafx - filterEvents() が使用されているときにイベント フィルタを削除するにはどうすればよいですか?
こんにちは、rxscala と scalafx を一緒に使用したいので、マウス イベントを再パッケージ化するためにこれを行いました。
問題は、Subscription { ??? }
ブロック内で登録されたイベントフィルターを削除したいのですfilterEvent()
が、それを見るとfilterEvent()
、イベントフィルターへの参照が保持されていないため、使用できませんstage.removeEventFilter()
。同等のものも見当たりません。削除removeFilterEvent()
を使用して登録されたイベント フィルタはどのように処理されますか?filterEvent()
回避策は、使用filterEvent()
せずに javafx を使用することだと思いaddEventFilter()
ますが、構文はもっと悪いです。
scala - タイムアウト付きの RxScala 再帰ストリーム
サブジェクトからアイテムを放出するオブザーバブルを再帰的に定義しようとしています。または、一定の時間が経過した場合はデフォルト値です。この場合、タイマーのデフォルト値ゼロを使用しています。私は RxScala を使用しており、次のコードから始めています。
これは機能するはずですが、出力がわかりにくいです。0 の他のすべてのシーケンスには、予想される 4 つではなく 2 つが含まれます。2 つのゼロが発行され、残りの 3 秒が経過しますが、出力はありません。
java - 1 秒に 1 回以下の反復ジョブを実装する
次のようなものがあるとします。
rx-java/scala を使用したこの慣用的な解決策は何ですか?
更新: コードから明らかでない場合は、もう少し明確にします。
ts nとten nをそれぞれジョブの開始と終了のタイムスタンプとします。doSomething()
次に、次のジョブをts n+1 = max (ten n , ts n + 1 second )にスケジュールする必要があります。
performance - 観測可能なパフォーマンスと将来のパフォーマンス
非同期コールバックを多用するVert.x 2.x ( http://vertx.io ) を使用しています。これらは、典型的なネスティング/コールバック地獄の問題ですぐに扱いにくくなります。
私は Scala Futures/Promises (デファクト アプローチになると思います) と Reactive Extensions (RxScala) の両方を検討しました。
私のテストから、いくつかの興味深いパフォーマンス結果が見つかりました。
私のテストは非常に基本的なもので、Vert.x イベントバス全体で非同期呼び出しを行い、HTTP 200 で返される応答を処理する Vert.x verticle に (weighttp 経由で) 一連の HTTP 要求を発行するだけです。応答。
私が見つけたのは次のとおりです (ここでのパフォーマンスは、1 秒あたりの HTTP 要求で測定されます)。
- 非同期コールバックのパフォーマンス = 68,305 rps
- Rx パフォーマンス = 64,656 rps
- 将来/約束のパフォーマンス = 61,376 rps
テスト条件は次のとおりです。
- Mac Pro OS X Yosemite 10.10.2
- Oracle JVM 1.8U25
- weighttp バージョン 0.3 で
- Vert.x 2.1.5
- スカラ 2.10.4
- RxScala 0.23.0
- 4 x Web Service Verticle インスタンス
- 4 x バックエンド サービス Verticle インスタンス
テストコマンドは
上記の数値は、5 回のテスト実行の平均であり、最良の結果と最悪の結果を除いたものです。結果は提示された平均値付近で非常に一貫していることに注意してください (数百 rps の偏差以下)。
上記が発生する可能性がある既知の理由はありますか?つまり、Rx > Futures in pure requests per second?
私の意見では、Reactive Extensions ははるかに多くのことができるため優れていますが、非同期コールバックへの標準的なアプローチは通常、Futures/Promises トラックを下回っているように見えるため、パフォーマンスの低下に驚いています。
編集:これがWebサービスのバーチクルです
編集:これがバックエンドVerticleです
rx-scala - RxScala バッファ要素
文字列の解析が必要なアプリケーションがあり、RxScala を使用しています。私のコード:
行を追加してから処理できるようになるため、問題があります。
たとえば200行のバッファを作成し、バッファがいっぱいの場合は、バッファがいっぱいでないときに新しいレコードを無視します。
RxScala にはこれを行う方法がありますか?