【问题标题】:php namespace benchmarkphp命名空间基准
【发布时间】:2011-07-16 22:36:22
【问题描述】:

使用命名空间会使网站变快还是变慢?这就是我想知道的。

如果它有助于提高网站性能,那么我想立即开始使用它。但如果它降低了它的性能,那么我根本不想使用它——即使是一点点性能也会对我的项目产生很大的影响。

有人对此有基准吗?你有什么看法?

【问题讨论】:

  • 嗯...您可能想了解一下 namespace 实际上是什么/做了什么。
  • 命名空间有助于更好地组织您的代码(防止类命名冲突等),在具有许多不同框架和类的环境中工作,它们并没有真正提供任何速度提升。
  • 这个问题真的那么糟糕,值得这么多反对吗?
  • “即使是一点点性能也会对我的项目产生重大影响。” 不,它没有。性能几乎与 99.999999% 的基于 Web 的项目无关。如果这是您的一个严重问题,您将不会使用 PHP。使其可维护。应用了一些简单的缓存后,有史以来最高效的代码不会比慢速代码快一半。

标签: php class object namespaces


【解决方案1】:

PHP 命名空间在很大程度上与您网站的性能无关。它们可以帮助您编写封装良好且结构化的代码 - 这就是为什么您不应该害怕使用它们的原因,至少在您的项目达到一定复杂性时是这样。

如果您真的担心性能,您应该首先分析并检查您真正的瓶颈在哪里。

【讨论】:

    【解决方案2】:

    命名空间在 PHP 内部不存在,即使是结构。在命名空间中定义的函数和类名将只有一个标识符,其中包含一个额外的 ASCII 字符:

    [1] => "namespace\user_func",    // get_defined_functions()
    

    当 PHP 查找函数/类/常量名称时,它必须遍历与普通函数/类/常量相同的哈希表。而且因为它是一个哈希表,所以没有性能损失。

    当然,解析是有区别的。但它无法衡量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 2011-08-29
      • 1970-01-01
      • 2023-03-26
      • 2014-08-12
      • 1970-01-01
      • 2016-03-25
      相关资源
      最近更新 更多