Анализатор блокировки для Java-приложения - PullRequest
4 голосов
/ 22 марта 2011

У меня есть две версии приложения Java, которые используют другую логику параллелизма.
Я хочу проанализировать и сравнить их производительность (такое количество времени, в течение которого была получена блокировка и т. Д.), Чтобы я мог использовать лучший.

Я обнаружил инструмент IBM Lock Analyzer для Java, но он не зависит ни от открытого исходного кода, ни от версии JDK.
Требуется поставляемый IBM® Java ™ SDK или JRE.

Еще одним инструментом от IBM является Multicore Software Development Kit, и у него есть следующая проблема

"Инструмент тестирования и анализа MSDK работает на Sun JDK, кроме блокировки инструмент анализа. Инструмент производительности требуется IBM JDK. "

Так кто-нибудь может порекомендовать какой-либо такой инструмент анализа блокировки, который работает с Sun / Oracle Java?

1 Ответ

2 голосов
/ 22 марта 2011

Вот трюк, который я использовал несколько раз, чтобы находить конфликты блокировок в производственных средах из командной строки:

watch -n1 'jstack [pid] | grep -A 1 BLOCKED | grep -v BLOCKED | grep -v \\-\\-'

Мало того, что это бесплатно, там практически нет накладных расходов.Конечно, он не даст вам статистику или хороший пользовательский интерфейс, однако это делает визуальные проблемы блокировки в реальном времени очевидными.По сути, это выборка каждую секунду, чтобы найти заблокированные темы.При достаточной загрузке сервера вы сможете сравнить.

YourKit - хороший коммерческий вариант.

...