【发布时间】:2016-04-11 08:56:25
【问题描述】:
目前正在使用 Play!Framework 和 Akka。我经常听到 Scala Future 效率不高,因为每个映射都是推送到新线程的新任务。由于这种行为,有一个潜在的问题是我压倒了线程池。我想知道是否有一个工具可以让我知道 CPU 绑定任务之间不必要的上下文切换会导致延迟恶化?
谢谢!
【问题讨论】:
标签: multithreading performance playframework threadpool
目前正在使用 Play!Framework 和 Akka。我经常听到 Scala Future 效率不高,因为每个映射都是推送到新线程的新任务。由于这种行为,有一个潜在的问题是我压倒了线程池。我想知道是否有一个工具可以让我知道 CPU 绑定任务之间不必要的上下文切换会导致延迟恶化?
谢谢!
【问题讨论】:
标签: multithreading performance playframework threadpool
我使用 YourKit 来分析 Play。如果你的应用程序中的所有时间都花在 Akka 的 Dispatcher 类、Scala 的 ExecutionContext 类或 Java 的 ForkJoinPool 上,那么很可能你做了太多的上下文切换。在 Play 的性能测试中,我们发现(偶然)引入一个额外的上下文切换会使性能降低 5%(尽管这是一个 hello world 性能测试,它什么都不做,总是对基准测试持保留态度)。
【讨论】: