Я создаю сервлет (например, MainServlet), где для того, чтобы быть потокобезопасным, я создаю объект (например, MainServletProcesor), а затем делегируя вызов объекту для обработки HttpRequest. Члены экземпляра MainServletProcessorhas, которые используются для выполнения запроса. Мне было интересно, хорошо ли этот подход с точки зрения производительности. Является ли этот подход созданием экземпляра процессора для запроса хорошей идеей?Производительность и экземпляры в Java-сервлете
ответ
Ваш сервлет doXYZ()
методы - это точки входа (ваша точка зрения) для вашего приложения. Если вы должны были написать всю логику обработки запросов в каждом из этих методов, ваш код очень быстро станет неуправляемым.
Что вы делаете, вполне разумно и на самом деле является хорошей практикой. Создание объекта практически не требует времени. Когда ваш контейнер Servlet получает фактический запрос HTTP, он фактически идет и создает тонну объектов (HttpServletRequest
, HttpServletResponse
, Streams
, Headers
и т. Д.), Не видя его.
Вы можете посмотреть поток обработки запроса для Tomcat here. Это не покажет вам, какие объекты создаются для каждого запроса, но вы можете экстраполировать (или посмотреть исходный код).
Почему бы и нет? Создание объекта дешево, и во время обработки и предоставления вашего запроса вы, вероятно, создаете намного больше.
Создание объекта на несколько порядков быстрее, чем запрос к базе данных, или запись ответа на выходной поток.
- 1. экземпляры Generic класса типа производительность
- 2. Производительность/обработка статических ссылок на экземпляры класса
- 3. многопоточных расслоение и сервисные экземпляры
- 4. Объект и экземпляры в Python
- 5. Лучшая производительность и наихудшая производительность в алгоритме
- 6. Пассажирские и мультирузовые экземпляры
- 7. Azure Роли и экземпляры
- 8. Cookies & URL и экземпляры
- 9. ViewControllers и View экземпляры
- 10. Легкие сущности и экземпляры
- 11. PHP Классы и экземпляры
- 12. Служебные и широковещательные экземпляры
- 13. OOP - объекты и экземпляры
- 14. Backbone.js и глобальные экземпляры
- 15. Строка и [a] экземпляры
- 16. Производительность и цикл foreach в .NET
- 17. Template.templatename.rendered и экземпляры шаблона
- 18. StructureMap и именованные экземпляры
- 19. Экспромт и экземпляры
- 20. Наследование и экземпляры Ruby
- 21. статические свойства и экземпляры
- 22. производительность сервера: несколько внешних подключений и производительность
- 23. Kinect v2 Производительность XAML и производительность WPF
- 24. EC2-снимки и связанные экземпляры
- 25. Многопоточные и глобальные экземпляры классов?
- 26. bluemix xpages производительность и архитектура
- 27. Azure Web Роли и экземпляры
- 28. Централизация CloudStorageAccount и TableServiceContext экземпляры
- 29. закрытие javascript и экземпляры классов
- 30. Рекурсивно определенные экземпляры и ограничения