Производительность: com.sun.net.httpserver.HttpServer vs. jetty - PullRequest
1 голос
/ 01 ноября 2011


Я работаю над веб-приложением Java, которое будет отправлять и получать строки JSON.JSON генерируется с помощью jersey и отображается в аннотации jaxb.

Само приложение не очень сложно, но должно работать в условиях интенсивного трафика.Я попробовал два подхода.Первый сервлет основан на jetty в качестве контейнера, а второй - на консольном приложении с оракулами класса HttpServer (используя jetty через "HttpServerFactory.create (..)").

Я протестировал обе версии с помощью apaches ab tool.Выполнение 10 000 запросов на уровне параллелизма 100. К моему удивлению, консольному приложению требовалось значительно меньше времени для ответа и была более высокая скорость передачи.Я ожидал обратного результата.

Является ли простое консольное приложение лучшим решением с точки зрения производительности для небольших приложений?Благодаря.

1 Ответ

0 голосов
/ 02 ноября 2011

Без дополнительной информации почти невозможно понять, почему ваше консольное приложение работает быстрее, чем сервер Jetty.

Я ожидаю, что встроенный экземпляр Jetty может работать немного быстрее, чем сервлет Jetty, как встроенный экземпляр Jetty.сможет убрать ненужные части API сервлета (в этом приложении) и, таким образом, сократить накладные расходы.Я не ожидал бы, что разница будет существенной.

Но : в небольшом тесте, подобном тому, который вы выполнили, я бы с большей вероятностью заподозрил, что проблема конфигурации (либо всервер или эталонный тест) дает разницу в результатах.

...