【问题标题】:PHP | $value = $anothervalue = getValue() - does it have negative influence on performace?PHP | $value = $another value = getValue() - 它对性能有负面影响吗?
【发布时间】:2012-01-07 21:49:33
【问题描述】:

这个问题是关于代码优化的:什么对性能更好,为什么(第一个例子对人类->程序员->我来说更干净)?

$value = $anothervalue = getValue();

$anothervalue = $getValue;
$value = $anothervalue;

【问题讨论】:

标签: php coding-style


【解决方案1】:

这与实际性能问题无关。

性能提升是当您将 100 个 sql 查询替换为 1 并将页面生成时间从 1 秒减少到 0.0001 秒时

只要您不能(可以吗?)衡量两种情况之间的差异 - 使用更具可读性和易于维护的一种

【讨论】:

    【解决方案2】:
    $value = $anothervalue = getValue();
    

    我猜这可能是最有效的,而且它看起来也更好。然而!就执行时间而言,像这样的优化应该根本无关紧要,所以请随意使用对您来说更清楚的那个。

    【讨论】:

    • 为什么你认为这可能是最有效的? (不是我的反对票)
    • @The Nail:实际上它应该更有效,只是因为有 1 个语句,而不是 2 个(解析器的工作量更少);-) 虽然我永远不会以这种方式回答(是的,因为我会害怕投票))))
    • @TheNail:解析操作,使用的令牌更少。此外,评估的表达式更少。而且我也同意这至少无关紧要。
    • 实际上可能正好相反。字节码几乎相同,除了在双重赋值中它使用表达式结果,而两个语句都只使用常量。因此,在不相关的皮秒范围内,这两个单独的分配可能会“获胜”。
    【解决方案3】:

    它应该不会影响他们执行相同操作 IMO 的性能,尽管由于可读性我更喜欢后者

    【讨论】:

      【解决方案4】:

      您所说的是。尝试确定哪个更快是绝对没有好处的,因为即使其中一个是(我真的怀疑),那么差异也会很小,以至于在现实生活中没有任何实际影响。

      如果您绝对必须找出其中一种方法,那么您可以对其进行基准测试。运行以$a = $b = func() 样式执行操作的循环,然后运行相同的循环,但改用$a = func(); $b = $a 样式。

      由于差异可能几乎不存在,因此您需要一个非常大的循环,至少 100,000 次迭代。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-08
        • 1970-01-01
        • 2020-12-29
        • 2011-11-12
        • 2014-01-05
        相关资源
        最近更新 更多