代码之家  ›  专栏  ›  技术社区  ›  amin mahmoudi

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

  •  0
  • amin mahmoudi  · 技术社区  · 7 年前

    我通过一个服务提供者将我的存储库注入到我的控制器中。

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Stratadox    7 年前

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

    当依赖于它的自动连接功能时,您可能确实会看到一些性能损失,因为容器需要使用反射来确定构造对象所需的参数类型。

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

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

    推荐文章