我们在负载测试和扩展 akka 应用程序方面取得了一些不错的进展,但我们看到 scala.concurrent.forkjoin.ForkJoinPool.scan() 在 visualvm 中大约 20% 的自身时间成为第二高的热点。自用时间 (CPU) 列仅表示其中的一小部分(小于自用时间列值的 1%)。
我怀疑这意味着阻塞或上下文切换可能存在问题,但我不太确定 - 任何人都可以提供见解吗?如果是上下文切换,我猜将调度程序的吞吐量调整到更高的数字可能会给我们带来收益,否则如果它是由阻塞引起的,我们将需要更多地阅读代码。
任何见解都非常感谢。