【问题标题】:PHP:What is faster? array_merge or array union operator (+)?PHP:什么更快? array_merge 或数组联合运算符 (+)?
【发布时间】:2015-01-30 09:49:11
【问题描述】:

我有两个具有唯一数字键的数组。如何更快地合并它们?

【问题讨论】:

  • 注意array_merge 和数组+ 操作符做微妙的不同的事情,所以你不能简单地比较速度
  • 但是,您为什么不自己运行一些测试,看看它是否真的有那么大的不同呢?请注意,您可能会发现答案因您处理的数据量而异!
  • 请记住,这暗示的更广泛问题的答案通常是“通过在数据库中执行操作,您应该在其中执行操作”...
  • 这是代码中最慢的部分吗?

标签: php arrays performance array-merge


【解决方案1】:

在 PHP 7.1.5 上使用两个小型多维数组进行 10000000 次迭代:

  • 加号运算符 (+):1.966 秒
  • array_merge:9.431 秒

所以加号操作更快,但如果你有碰撞,结果就不同了。

【讨论】:

    【解决方案2】:

    最重要的是代码的易读性。这种微优化通常是一个错误,因为您应该编写尽可能干净的代码,然后通过分析对其进行优化。

    如果您希望加快速度或分析所用时间,我建议您使用 xdebug 以及类似 cachegrind 的工具来查看输出。

    【讨论】:

    • 除此之外,我也不知道为什么人们不自己尝试看看哪个更快。
    • 不确定我们是否可以将其视为微优化,因为差异很明显。
    猜你喜欢
    • 2018-08-03
    • 2011-07-11
    • 2012-09-20
    • 2021-11-20
    • 1970-01-01
    • 2018-06-30
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多