Я сделал веб-приложение Java, размещенное Tomcat. Это можно найти на этом URL.Первый ответ медленный Tomcat
Проблема, с которой я столкнулся, заключается в том, что всякий раз, когда я посещаю страницу, первый раз это занимает около 10 секунд, а каждый раз после нее она занимает всего 100-500 мс. Я бы сказал, что улучшение скорости происходит из-за кеширования браузеров, но не очень, когда я обновляю кеш (ctrl
+ shift
+ r
). Я получаю тот же быстрый ответ.
Затем через некоторое время, около 5 минут, я снова захожу на страницу и снова медленно.
Вы можете попробовать некоторые тесты сами по URL при условии, изменив значение параметра поиска т.д .: 1050
, 1051
, 1052
, 2670
, 4000
, 2300
, 2200
.
Также интересный факт, который я заметил, заключается в том, что независимо от того, насколько большой полезный груз (сравните 1050 с 2300), время почти всегда одинаковое. 9-10s. Поэтому я предполагаю, что что-то вроде Java Server должно готовиться, и это то, что занимает время.
EDIT:
Я был первым думать, что это может быть связано с Java/Tomcat того, чтобы загрузить некоторые ресурсы, а затем через некоторое время + -3-5mins снова, потому что по какой-то причине разгрузив его. Но, как я писал выше, даже если я изменил строку запроса URL (которая вызывает другой запрос SQL во время выполнения), она снова загружается долго. Может ли проблема быть связана с БД? Я использую MySQL.
EDIT2:
Причина, почему это быстрее, скорее всего, кэширование сервера. Я на 95% уверен, и это потому, что я сделал пару экспериментов, таких как попытка на двух компьютерах и т. Д. (Нет, это не кеширование браузера). Тогда я понял, что если это быстро, только когда он кэшируется, то, что занимает так много времени, является фактическая строка кода .executeQuery
. Это занимает 10 секунд, хотя точно такой же запрос через клиента, такой как WorkBench
занимает всего 0.285s. Поэтому я попытаюсь использовать PreparedStatement
или экспериментировать дальше.
Является ли ваше приложение размещенным на экземпляре Tomcat, который обслуживает несколько веб-приложений (а не только ваших)? Существует вероятность, что Tomcat закрывает ваше приложение (чтобы сохранить ресурсы), когда оно не используется кем-либо, поэтому требуется некоторое время, чтобы перезагрузить его, когда вы его посещаете. –
Хм, да, на нем есть один сервер tomcat и несколько приложений. Есть ли способ держать его открытым и готовым для каждого приложения? –
Я не знаю, можете ли вы открыть его, но вы можете спросить своего веб-хостинг-провайдера. Возможно, это не проблема. –