【问题标题】:PHP performance: $this->variable versus local $variable (manipulating)PHP 性能:$this->variable 与本地 $variable(操作)
【发布时间】:2013-01-12 18:25:30
【问题描述】:

我决定将班级中的一个部分拆分为一个新部分。

当我将代码部分移植到一个新类中时,我注意到它在执行其中一个 foreach 循环时要慢得多。

我设法找到了我决定保存最终结果数组的部分问题。

我认为如果您看到我的代码的简化版本会更容易理解:

原移植代码:http://pastebin.com/2iBuqmgn 更优化的移植代码:http://pastebin.com/TYU1rHwU

您会看到,在第一个示例中,我一直直接操作 $this->active_topics。

虽然在第二个示例中,我在将局部变量保存到 $this->active_topics 之后在 foreach 循环之后使用了局部变量。

原来的循环似乎平均为 1 秒,而更优化的循环平均使用 0.85 来执行。它们最终返回完全相同的内容。

为什么使用局部变量的代码越优化越高效?

【问题讨论】:

    标签: php performance local-variables class-variables


    【解决方案1】:

    当您访问类中的某些内容时,PHP 解释器首先必须在内存中找到该类,然后查看属性所在的位置。在一个普通的局部变量上,它不需要在类中搜索属性,它可以直接访问变量的内存,所以速度更快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      相关资源
      最近更新 更多