Наше приложение имеет ~ 10 потоков, выполняющих отдельные задачи (без пулов потоков). Мы не сталкиваемся с тупиковой ситуацией, но всегда стараемся снизить задержку, чтобы ответить на запрос, поэтому мы заинтересованы в определении того, какие блокировки являются наиболее распространенными. jconsole показывает, как часто блокируются потоки, и это происходит не очень часто, но мы все же хотим знать, какие блокировки являются наиболее распространенными.Определение того, какие блокировки наиболее разрешены?
Мы работаем с использованием Sun JVM, поэтому JLA от IBM не полезна, и мы не работаем на Solaris, поэтому мы не можем использовать dTrace.
EDIT: Я хочу сделать это наблюдение в производстве, где профайлер замедлит приложение неприемлемо. Это торговая система, если мы медленны, мы теряем деньги, поэтому мы не запускаем профилировщики в производстве. Также довольно сложно моделировать многие обмены, с которыми мы беседуем в тесте производительности.
dTrace - единственная система, которую я лично знаю о том, что делает то, что вы хотите, без инструментов профилирования. – aperkins
Думая об этом больше, я считаю, что инструментарий - лучший подход. Вы можете регистрировать отдельные запросы блокировки или сохранять глобальные счетчики. –