Смоделировал следующий сценарий работы неумирающего приложения:
Задепоили приложение в рантайме а-ля RoadRunner, собрали контейнер и готовы принимать запросы. Ни один сервис не инстанциирован, но контейнер максимально готов.
Как быстро испытуемые вернут инстанс контроллера с несколькими зависимостями?
Сравнение, конечно, не совсем равнозначное, потому что только у Thesis есть этап диспоуза сервисов после скоупа и не во всех контейнерах есть полноценные scoped сервисы.
Но в целом результат ожидаемый. Скомпилированный контейнер Symfony почти эквалентен написанному руками коду (manual).
Thesis (current) быстрее Laravel и Yii3, потому что рефлексию и резолвинг графа зависимостей он делает на этапе сборки, а в рантайме вызывает полностью готовые фабрики.
Для бенчмарка попробовал
#[Bench] в 🐘 Testo.Код скину, когда доделаю ещё несколько важных сценариев. Накидывайте идей.
