2015-09-17 2 views
3

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

Я хотел бы свести к минимуму количество сообщений с пользователями и успешно воспроизвести их проблемы в моей среде разработки. Я не могу использовать их контекст выполнения из-за юридических причин.

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

Похож на довольно распространенную потребность. Существуют ли какие-либо решения, которые могут помочь достичь описанного поведения?

ответ

3

JProfiler позволяет бесплатно распространять профилирующий агент и управлять им в режиме офлайн. Агент профилирования активируется путем добавления специального параметра VM к вызову JVM (-agentpath: ...).

Затем вы можете использовать класс Controller для записи данных и сохранения моментальных снимков на диск. Кнопка «Старт/Стоп» для записи статистики в вашем настольном приложении вызовет эти методы.

Если приложение запутано, JProfiler может деактивировать моментальный снимок при его открытии.

Чтобы установить все это, создайте локально запущенный сеанс в JProfiler, а затем выберите

Sesssion->Conversion Wizards->Convert Application Session To Redistributed Session 

enter image description here

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

+0

Спасибо. Автономное профилирование - это то, что мне действительно нужно. Есть некоторые профилировщики, которые поддерживают его, включая VisualVM, поэтому попробуем их. –

0

Распределенная трассировка - это действительно то, что мне нужно.

От Google есть Dapper project. И Zipkin из Twitter с множеством интеграций, включая Spring by Sleuth.

Смежные вопросы