组合 2 个字符串时,以下哪种方法更快?而且为什么它能跑得更快呢?
PHP代码:
$str1 = 'Hello';
$str2 = 'World';
方法一:
$txt = $str1.$str2;
方法2:
$txt = "$str1$str2";
操作码比较
Code:
$a=1;
$b=2;
echo "$a$b";
Opcodes:
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
Code:
$a=1;
$b=2;
echo $a.$b;
Opcodes:
1 0 > ASSIGN !0, 1
1 ASSIGN !1, 2
2 CONCAT ~2 !0, !1
3 ECHO ~2
4 > RETURN null
中间结论
连接少了一个操作码,庆幸!不一定,我们还需要测试实际运行时的性能。
要查看任何代码生成的操作码,请查看伟大的vld扩大 http://pecl.php.net/vld
运行时性能
在工作站上运行超过 0.5m 次迭代(平均运行超过 10 次):
结论
串联速度更快,但不太可能影响任何特定应用程序的性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)