akka中Fastfuture的用法是什么,文档中没有明确说明:
提供在Future上定义的基本转换操作的替代实现,它尽可能避免调度到ExecutionContext,即如果给定的未来值已经存在。
它与未来有什么不同,有人可以用一个例子来解释它在什么情况下使用它以及它在性能或任何其他方面提供了什么好处?
答案 0 :(得分:5)
在ExecutionContext
次调用中使用map
时,这涉及scala Future
中的额外调度费用,而使用akka FastFuture
s时,它可以执行同一地图线程避免潜在的上下文切换,并可能导致非常短的任务的缓存未命中(如简单的数字运算)。因此,对于快速map
操作,FastFuture
应该更快。
请注意,flatMap
通常也需要ExecutionContext
FastFuture
,因为它应该使用它来安排生成的Future
。
值得检查Viktor Klang's blog和discussion related Futures on Scala contributors page。