Php laravel注射芯对性能有影响吗?

Php laravel注射芯对性能有影响吗?,php,laravel,Php,Laravel,我通过服务提供者将存储库注入控制器 问题1:通过反射laravel注入核心,注入对性能有何影响?它与在控制器内创建新实例对象不同吗? 如果我的serviceProvider通过Laravel的singleton模式绑定许多类,会产生什么影响 问题2:在单例模式中,是否在每个对服务器的请求中都创建一个对象? 完成请求后,单例对象是否被销毁或缓存并重新使用?有关性能的一般建议是,只有在出现问题时才对其进行优化,即使如此,也只有在掌握性能指标的情况下才能进行优化 至于使用Laravel注入容器对性能的

我通过服务提供者将存储库注入控制器

问题1:通过反射laravel注入核心,注入对性能有何影响?它与在控制器内创建新实例对象不同吗? 如果我的serviceProvider通过Laravel的singleton模式绑定许多类,会产生什么影响

问题2:在单例模式中,是否在每个对服务器的请求中都创建一个对象?
完成请求后,单例对象是否被销毁或缓存并重新使用?

有关性能的一般建议是,只有在出现问题时才对其进行优化,即使如此,也只有在掌握性能指标的情况下才能进行优化

至于使用Laravel注入容器对性能的影响,这将取决于您如何使用它

依赖它的自动连接功能时,您可能确实会看到一些性能损失,因为容器需要使用反射来确定构造对象所需的参数类型。 手动绑定服务可能会更快,在这种情况下,只需要在哈希映射中进行查找

关于问题2,PHP在两个中间操作。大多数php服务器都会使用字节码进行缓存,这样在第一次执行后,解释速度会更快。然而,PHP的构建方式是在请求完成后从内存中删除所有对象


这可能会导致一些性能损失,但这也是确保没有内存泄漏的好方法,非常适合HTTP/REST的无状态概念。

对于每个请求,整个堆栈将再次运行(如果你让应用程序出错,你可以看到“呜呜”的消息+整个堆栈跟踪,所以每次你点击服务器时,这个堆栈都会被一遍又一遍地运行)。这一切都是关于可读性和可测试性,而不是更高的性能。如果你想拥有最先进的性能,请使用C。