我有一个小型 Akka 应用程序,它在其参与者之间传递许多消息,每个参与者对其接收的数据进行一些计算。我想要的是分析这个应用程序,以便查看代码的哪些部分占用最多的时间等等。
我尝试了 VisualVM,但我无法真正理解发生了什么。我添加了分析器输出的图片。
我的问题是
- 例如,第一行是什么,为什么要占用这么多时间?(scala.concurrent.forkjoin.ForkJoinPool.scan())
- Akka 应用程序由于它们的异步行为而可以被很好地分析吗?
- 例如,我可以看到一个特定的参与者(-type)对于它收到的一个特定的消息(-type)工作多长时间?
- 还有其他用于分析 Akka 应用程序的最佳实践吗?