Как измерить реальное время, проведенное в методах, вызываемых веб-сокетом Java? (@ServerEndpoint) - PullRequest
0 голосов
/ 15 апреля 2019

Мне нужно профилировать реальное время, потраченное программой во время длительного процесса импорта, запускаемого при вызове веб-сокета.Я вижу, как сервер хорошо отвечает на запросы HTTP, но у меня проблема с веб-сокетами (классы, помеченные javax.websocket.server.ServerEndpoint ).

Импорт начинается, когда @ OnMessage вызывается, и затем сервер будет регулярно отправлять объекты состояния на удаленную конечную точку для обновления индикатора выполнения на стороне клиента.

Когда я добавляю агент XRebel в мой сценарий запуска Wildfly,Я прекрасно вижу вызов Websocket, но кажется, что он информирует меня только о создании сокета, а не о том, что происходит после первого получения сообщения:

enter image description here

Вызов / websocket / import занимает всего 22 мс и не входит ни в один класс моих пакетов, кроме пакетов Wildfly.

У меня нет сомнений, что программа тратиттам много времени (более 15 минут), и обновления индикатора пользовательского интерфейса работают нормально.

  • Как я могу отслеживать активность в аннотированных классах @ServiceEndpoint с помощью XRebel?
  • В качестве альтернативы, я могу использовать другого агента Java?

Если что-то не получится, я прибегну к AOP.

...