【问题标题】:Do unused use statements decrease performance?未使用的 use 语句会降低性能吗?
【发布时间】:2015-01-29 09:54:09
【问题描述】:

我想知道课堂上未使用的 use 语句是否会影响我的 php 网站的性能

php 是否在开始时或需要时包含所有类?如果是第二选择,那么我认为它不会影响我的系统的性能。

例如:Use statement 'DbConnector' is not used

use model\adapter\DbConnector;

【问题讨论】:

  • 像这样的所有问题都有相同的答案:分析它。
  • 如果你不使用它,为什么要保留它?它只会让你的代码变得混乱。
  • 我已经删除了未使用的用途,我想知道它是否会提高性能。
  • 马虎没有正当理由,但不会以任何有意义的方式影响性能。

标签: php performance php-internals


【解决方案1】:

不,use 语句不会触发要加载的类(它甚至不会触发自动加载器)。

它只是为一个类声明一个短名称。我假设在 CPU 和 RAM 方面的成本大约是几个 CPU 周期和几个字节。

【讨论】:

  • 有一个场景我正在战斗,由于过多的使用别名和 require_once 调用,操作码缓存放弃导致巨大的性能损失。不使用别名但保留所有 require_once 调用,一切正常。在 PHP 7.0.x 上,没有测试其他人。
  • 另外,这个基准测试表明完全合格总是更快:veewee.github.io/blog/…
  • 随意添加您自己的答案,但我的印象是您误解了问题的重点。我们正在讨论未使用 use 子句的潜在成本,而不是实际使用 use 子句的成本。
  • 我没有答案,我有意见。另外,我是老用户了,我想我现在应该知道了!我没有说这些语句是实际使用的。
【解决方案2】:

较新版本的 PHP、PHP 7 尤其是 PHP 7.2 在编译成字节码时非常擅长优化代码。 Unsed use 语句只是被编译器剥离,甚至不会执行。因此,它不应该有任何影响。编译器在解析文件时可能会使用更多的 CPU 周期,但如果您使用 OPCache,则不会影响性能。只有在需要时才会加载文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多