Профиль Java GUI приложение для отзывчивости - PullRequest
1 голос
/ 14 мая 2019

При разработке Java-приложения с графическим интерфейсом (на основе SWT или Swing, это не имеет значения), как лучше всего профилировать отзывчивость, например, что занимает время, если приложение чувствует себя вялым в определенных операциях, таких как нажатие кнопки, пока что-то не произойдет.Проблема в том, что я понимаю, что задержки довольно низкие (обычно <0,5 с) и, следовательно, их трудно измерить, потому что большинство известных мне профилировщиков должны запускаться и останавливаться позже. </p>

Ответы [ 2 ]

1 голос
/ 17 мая 2019

YourKit Java Profiler имеет встроенный зонд, который автоматически записывает все события AWT / Swing, превышающие 0,3 секунды, что может вызвать неотзывчивость пользовательского интерфейса: https://www.yourkit.com/docs/java/help/awtevents.jsp

Отказ от ответственности: я работаю на YourKit

1 голос
/ 15 мая 2019

Проблема с приложениями UI для профилирования заключается в том, что вызовы потока диспетчеризации событий (EDT) часто происходят из других потоков или запускают фоновые операции, которые в конечном итоге вызывают что-то в EDT.Это может затруднить отдельное представление о последствиях действий пользователя.

JProfiler имеет функцию под названием «Асинхронное отслеживание», которая может отслеживать вызовы в потоках отправки событий как AWT, так и SWT:

  1. Вы должны профилировать сконтрольно-измерительные приборы и включить слежение:

enter image description here

Затем вы записываете данные процессора и выполняете действия, которые запускают действия на EDT:

enter image description here

Наконец, вы нажимаете на «Встроенные асинхронные выполнения», чтобы увидеть дерево вызовов через границы потоков:

enter image description here

Отказ от ответственности: Моя компанияразрабатывает JProfiler.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...