У меня есть многопоточное приложение, которое хорошо масштабируется для начала, но работает на сервере с 16 процессорами, как только я превышу 5 или 6 аппаратных потоков, уровень производительности снижается. I подозревает, что узкое место окружает один из синхронизированных методов. Тем не менее, я должен быть уверен, что это виновный метод, прежде чем начать погружение в код и попытаться заменить алгоритм неблокирующим.Профилирование Java: выяснить, где потоки тратят время заблокировано
Запуск Java с аргументом -Xprof говорит мне, что, как я ожидал, потоки тратят большую часть своего времени на блокировку. Есть ли способ, которым я могу разбить это на то, сколько времени они тратят на блокировку по определенному методу?