Servlet запрос производительности getparameter - PullRequest
3 голосов
/ 03 апреля 2010

Я заметил, что мое приложение иногда очень медленное, поэтому я провел несколько тестов. Это очень простое веб-приложение. Один сервлет получает некоторые параметры, а не сохраняет их. Все хорошо, кроме одной вещи. Для получения параметра в первый раз требуется слишком много времени. Неважно, какой параметр я пытаюсь получить, но в первый раз он очень медленный. Странно то, что это происходит не всегда. Иногда получение параметра в первый раз происходит не медленно.

Мой код выглядит так

request.getParameter("paramName");
request.getParameter("paramName2");
request.getParameter("paramName3");

Получение «paramName» происходит медленно. Получить других очень быстро.

Под медленным я имею в виду: 200-800 миллисекунд Под очень быстрым я имею в виду: ~ 0 миллисек (во фрагменте кода я не писал тест производительности, но использую System.currentTimeMillis())

UPDATE

Я экспортировал свой проект в файл .WAR и развернул его в Tomcat. Все в порядке. Поэтому я думаю, что эта проблема связана с Eclipse или чем-то еще.

Ответы [ 3 ]

2 голосов
/ 03 апреля 2010

Я подозреваю, что параметры могут анализироваться лениво - когда вы впервые запрашиваете параметр, он может анализировать все, сохраняя их для эффективного доступа позже.

Однако 200 мс звучат как ужасно долгое время ..... это когда вы работаете под отладчиком?

Конечно, это полностью зависит от вашего контейнера сервлета.

1 голос
/ 05 апреля 2010

Похоже, ошибка во встроенном веб-браузере Eclipse, из-за которой он неправильно отправляет заголовок Content-Length. Я не могу судить по опыту, потому что никогда не использовал это всерьез. Я всегда развертываю проект на интегрированном Tomcat или Glassfish, запускаю его, а затем просто открываю страницу в веб-браузере real (Firefox, Chrome, Safari, IE и т. Д., Который вы запускаете независимо от Eclipse). Это дает основное преимущество, заключающееся в том, что вы можете использовать любые плагины и дополнения браузера, которые могут значительно облегчить разработку, такие как Firebug и консорты.

Если вы настаиваете на использовании веб-браузера внутри Eclipse, попробуйте изменить используемый веб-браузер, перейдя в Окно> Веб-браузер и выбрав не Внутренний веб-браузер .

0 голосов
/ 03 апреля 2010

Достаточно ли у вас памяти? Вам нужно много работать при работе с Eclipse и сервером развертывания, и это похоже на обмен

...