У меня есть небольшое приложение Akka, которое передает много сообщений между его участниками, и каждый актер выполняет некоторые вычисления на полученных им данных. Я хочу профилировать это приложение, чтобы увидеть, какие части кода занимают больше всего времени и т.д.
Я попробовал VisualVM, но я не могу понять, что происходит. Я добавил изображение вывода профилировщика.
Мои вопросы
- Что, к примеру, это первая строка и почему это занимает столько времени? (scala.concurrent.forkjoin.ForkJoinPool.scan())
- Может ли приложения Akka из-за их асинхронного поведения профилироваться вообще?
- Можно ли, например, посмотреть, как долго один конкретный актер (тип) работает для одного конкретного сообщения (типа), которое он получает?
- Существуют ли другие лучшие практики для профилирования приложений Akka?