php - 使用全局会产生任何开销吗?

标签 php optimization

如果您在最终没有使用的变量上使用 global 关键字,会不会有问题?比较:

function foo() {
    global $fu;
    global $bah;
    if (something()) {
        $fu->doSomething();
    } else {
        $bah->doSomething();
    }
}

function bar() {
    if (something()) {
        global $fu;
        $fu->doSomething();
    } else {
        global $bah;
        $bah->doSomething();
    }
}

我很清楚使用第二种方法会使维护此代码变得更加困难,并且通常首选将所有全局变量放在函数的开头,因此:忽略可维护性和代码样式方面的差异在这两个功能中,这两者在开销方面有区别吗?

最佳答案

如果存在,它将无法(人工)测量,除非您确实调用此函数数百万次。即使它是具有该属性的递归函数,我仍然不会将您的第二种方法用于您已经提出的可维护性方面。

编辑:为了论证,我实际上进行了基准测试,bar() 在超过 100 万次调用时最终慢了 0.1 秒。这意味着在性能方面,您仍然有理由使用更清洁的版本。

关于php - 使用全局会产生任何开销吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181285/

相关文章:

php - yiic migrate 命令不执行来自模块的迁移

preg_replace 期间的 PHP 段错误

PHP - 检查变量既不是空也不是字符串

php - Laravel 查询关系模型

使用 AVX 但不使用 AVX2,分别计算许多 64 位位掩码上的每个位位置

Python3.3 : Square-root optimization

python - 使用多线程/多处理加速抓取

php - 将参数从 php 传递到 javascript

c++ - 如何使用 vector 类对 C++ 代码进行矢量化

mysql - 250选择对1