2017-11-24 2 views
2

でFastFutureの使用はどのようなものです:アッカで<a href="https://doc.akka.io/japi/akka/2.4.3/akka/http/scaladsl/util/FastFuture.html" rel="nofollow noreferrer">Fastfuture</a>の使用が文書から明らかではない何アッカ

にスケジュールを回避しようとする将来に定義された基本的な変換操作の代替実装を提供します可能であれば、つまり指定された将来の値がすでに存在する場合は、ExecutionContext

将来とはどのように違うのですか?誰かがこれをどのような場合に使用するのか、それがパフォーマンスやその他の面でどのようなメリットをもたらすのかの例を説明できますか?

+0

[scala.concurrent.Futureの代わりにakka.http.scaladsl.util.FastFutureを使用する必要がありますか?](https://stackoverflow.com/questions/42808593/should-i-use-akka-http) -scaladsl-util-fastfuture-scala-concurrent-futuの代わりに) – chunjef

答えて

4

アッカFastFuture秒でそれが潜在的なコンテキストスイッチを回避し、潜在的に非常に短いタスクのためにキャッシュミスを引き起こして同じスレッドでマップを行うことができますがExecutionContextは(、ScalaでFuture秒余分なスケジューリングコストを伴うmap呼び出しで使用されていますシンプルナンバークランチのように)。したがって、高速のためmap操作FastFutureが速くなるはずです。

flatMapは通常、それが生成さFutureのをスケジュールするためにそれを使用する必要があるとして、あまりにもねFastFutureExecutionContextが必要であることに注意してください。

Viktor Klang's blogdiscussion related Futures on Scala contributors pageをチェックする価値があります。

+0

これは正確です。私たちは通常、例えば未来がすでに完了していることを「知っている」ときにそれを使用します。 Viktorは未来に取り組んでいますが、タイムライン上では確かではありません。 –

関連する問題