Я просматриваю большое java-приложение, чтобы увидеть, есть ли какие-либо узкие места в производительности. Настоящая проблема в том, что я не могу определить проблемы с производительностью для какого-либо отдельного модуля. Все приложение само по себе медленное.
Есть ли какой-нибудь инструмент / методика, которые я могу использовать, чтобы помочь мне в этом?




Попробуйте использовать профилировщик в своем работающем коде. Это должно помочь вам определить узкие места. Попробуйте jprofiler или Профилировщик Netbeans
Если вы работаете на Java 6, вы можете использовать поставляемые инструменты мониторинга
Я часто достаточно доволен использованием Java -Xprof. Это дает вам отсортированный список функций, в которых ваш код проводит большую часть своего времени.
YourKit - отличный профилировщик java (не бесплатный).
Как видно из Как я могу профилировать код C++, работающий в Linux?, наиболее статистически значимым подходом является использование профилировщика стека.
Что ж, Java работает в JVM, поэтому получение стека, полезного для кода C, нам не будет полезно (он получит материал JVM, а не ваш код). К счастью, в Java есть jstack! http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstack.html
Это даст вам кучу потоков, таких как GarbageCollector. Не беспокойтесь об этом, просто посмотрите, где находятся ваши темы.