3

结合 2 个字符串时,以下哪种方法更快?为什么它可以跑得更快?

PHP代码:

$str1 = 'Hello';
$str2 = 'World';

方法一:

$txt = $str1.$str2;

方法二:

$txt = "$str1$str2";
4

1 回答 1

5

操作码比较

代码:

$a=1; 
$b=2; 
echo "$a$b";

操作码:

   1     0  >   ASSIGN                                                   !0, 1
         1      ASSIGN                                                   !1, 2
         2      ADD_VAR                                          ~2      !0
         3      ADD_VAR                                          ~2      ~2, !1
         4      ECHO                                                     ~2
         5    > RETURN                                                   null

代码:

$a=1; 
$b=2; 
echo $a.$b;

操作码:

   1     0  >   ASSIGN                                                   !0, 1
         1      ASSIGN                                                   !1, 2
         2      CONCAT                                           ~2      !0, !1
         3      ECHO                                                     ~2
         4    > RETURN                                                   null

中间结论

连接少了一个操作码,高兴!并非如此,我们仍然需要测试实际的运行时性能。

要查看任何一段代码生成的操作码,请查看出色的vld扩展

运行时性能

在工作站上运行超过 0.5m 次迭代(平均超过 10 次运行):

  • 内联:0.9793s
  • 级联:0.9252s

结论

串联速度更快,尽管它不太可能影响任何特定应用程序的性能。

于 2012-11-25T17:26:11.117 回答