Как профилировать Java-приложение?
От: vsb Казахстан  
Дата: 03.07.23 05:54
Оценка:
Тратить тысячи денег на коммерческое не хочу, нет таких денег.

У меня серверное приложение, которое нужно в продакшне отпрофилировать в часы пик и понять, куда процессорное время уходит.

Скачал visualvm, подключился (это отдельный квест, ну да ладно), но он какой-то максимально убогий. Основная претензия — он считает cpu по статусу потока в JVM. При этом этот статус RUNNING даже когда поток спит в native коде (к примеру netty), да даже когда он спит в NioSelector-е из стандартной библиотеки. То бишь у меня потоки типа http-nio-8080-Poller нагружены на 100%. А если просуммировать, то там все 2000% будут, хотя по факту в top-е в этом время нагрузка нулевая. При этом как вручную пометить, что эта функция CPU не потребляет, я не увидел.

Каких-то других способов профилировать не нашёл. Все покупают/воруют yourkit?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.