Здравствуйте, Аноним, Вы писали:
А>Всем привет! А>Столкнулся с такой проблемой: тестировали приложение на выделенной машине (ос windows xp) — всё хорошо, работает быстро. Установили на сервер заказчика — работает значительно медленнее (в 2-3 раза). Веб-контейнер — Tomcat 5.5, jdk 1.6 update 10 (под windows jdk более старой версии, но врятли из-за этого может быть такая разница в производительности). Приложение БД не использует. Логгирование показывает что тормозит абсолютно все операции (т.е. каждая операция выполняется в 2-3 раза медленее, а не на каких-то отдельных). А>Даже не знаю в какую сторону двигаться, очень нужна помощь.
Я бы советовал профайлить и тестировать.
Важный вопрос — проблемы с производительностью на уровне вашего приложения? Или JVM? Или операционной системы? Выясните, после этого станет понятнее что делать. Профайлер и собственные мини-тесты в этом помогут.
Например, осли проблемы окажутся на уровне ОС, то во многих ситуация решение ложится на заказчика. "У вас проблема с сервером, и вот почему мы так считаем:...". Или вы брали на себя обязательство настраивать и поддерживать его серверы? Кстати, в такой ситуации можете это предложить за отдельные средства. Если вам это нужно.
Если на уровне приложения (выглядит маловероятным) — чините.
Если JVM (также выглядит маловероятным) — действуйте по обстановке, т.е. исходя из природы тормозящих операций. Вариантов немного, в основном конфигурация параметров JVM.
При этом важно помнить, вы не отвечаете за проблемы java под определённой ОС. Вы можете поиграться конечно с разными версиями jdk, но если это не помогает — советуйте заказчику обратиться в службу поддержки Sun. Предоставьте входную информацию для этого.