Хит производительности при использовании агента - PullRequest
0 голосов
/ 10 мая 2018

Я оцениваю продукт, который работает с помощью байт-кода. Я запускаю свое приложение через предоставленного агента, который обрабатывает байт-код, профилирует и генерирует отчеты о моем приложении.

Каков наилучший способ определения потери производительности, налагаемой запуском агента? Было бы достаточно, если бы я зафиксировал задержку нескольких операций в моем приложении через JMH с агентом и без него? Кроме того, есть ли ожидаемое базовое падение производительности при использовании агента, который выполняет инструментарий байт-кода?

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Если ваше приложение представляет собой сервер, вы можете запустить его с агентом и запустить отдельный тест JMH, который бы измерял количество обращений к вашему приложению. Таким образом, ваше приложение будет работать с этим агентом или без него, и тестовый код не будет мешать ему. Но вам придется выделить множество факторов, таких как задержка вызова, использование процессора вызывающим абонентом (если вы запускаете вызывающего абонента с одного хоста), распределение вызовов (у вас много разных вызовов на сервере, но только пара в эталон) и т. д.

Если бы вместо этого вы бы использовали бенчмарк внутри агента процесса, к которому я подключен, я бы не стал доверять этому результату, если только действия не занимают очень много времени, например> 5 мс.

0 голосов
/ 10 мая 2018

Вы можете загрузить существующий тест производительности Java, например SPECjvm2008 , и запустить его с / без вашего агента.Я бы не только написал бы микробенчмарк, полученный из приложения, которое вы отслеживаете, потому что это может не высветить узкие места различных операций и методик инструментов, используемых этим продуктом (метод / память / система).

Базовая линия, рекламируемая для типичного агента, составляет 5%, и это число, которое я бы взял с огромным зерном соли.

...