ядро впрыска laravel влияет на производительность? - PullRequest
0 голосов
/ 09 сентября 2018

Я внедряю свой репозиторий в контроллер через сервис-провайдера.

вопрос 1: Какое влияние на производительность оказывает инъекция через отражение ядра инжекции Ларавеллы?Отличается ли это от создания нового экземпляра объекта внутри контроллера?Каково влияние, если мой serviceProvider связывает многие классы с помощью одноэлементного шаблона Laravel?

вопрос 2: В одноэлементном шаблоне объект создается в каждом запросе к серверу?После завершения запроса, уничтожается ли одноэлементный объект или кэшируется и используется повторно?

1 Ответ

0 голосов
/ 09 сентября 2018

Общий совет, когда речь идет о производительности, - оптимизировать ее только тогда, когда это становится проблемой, и даже тогда делать это только с имеющимися показателями производительности.

Что касается влияния на производительность при использовании инъекционного контейнера Laravel, то это будет зависеть от того, как вы его используете.

Опираясь на функциональность автоматического подключения, вы действительно можете увидеть некоторую потерю производительности, поскольку контейнеру необходимо использовать Reflection, чтобы определить тип параметров, необходимых для построения объекта. Может быть быстрее связать службу вручную, и в этом случае требуется только поиск в хэш-карте.

Что касается вопроса 2, php работает немного посередине. Большинство серверов php создают кэш с байт-кодом, поэтому после первого раза интерпретация будет выполняться быстрее. Однако PHP построен таким образом, что все объекты удаляются из памяти после завершения запроса.

Это может привести к некоторой потере производительности, но это также хороший способ убедиться в отсутствии утечки памяти и хорошо вписывается в концепции HTTP / REST о безгражданстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...