Здравствуйте, ligett, Вы писали:
L>Кстати, может быть подскажите какие-то тулы для определения узких мест производительности в java-приложениях? например вопрос номер 1 у меня, это где задержка дольше всего — в передаче данных клиент-jboss, классы бизнес-логики, классы доступа к данным или сама база данных. Какой-то может быть есть end-to-end профайлер?
Если всё написано более-менее разумно без откровенных перегибов, то
Сообщение клиент(браузер)-сервер, естественно, самого продолжительное. Клиент физически расположен далеко от сервера и время тут может идти на секунды.
Но, оно и ресурсов, обычно, много не отнимает (за исключением некоторых атак с долгими запросами). Поэтому к производительности сервера отношения не имеет.
Второе узкое место это работа с базой. Во-первых база и сервер это разные процессы даже на одной машине. А если говорить о кластере, то Java и БД даже физически на разных машинах.
Поэтому SQL запросы отнимают массу времени, и это легко лечится толстым кешированием со стороны Java.
Тулзы — JMeter, любой профайлер (JVisualVM), профайлер SQL запросов (специфичный для каждой базы). Ну, и отдельныо со стороны браузера, например, Firebug .