Ram*_*Ram 2 php performance echo
哪些命令能发挥最佳性能?最差?为什么?
echo 'A: '.$a.' B: '.$b.' C: '.$c;
echo 'A: ', $a, ' B: ', $b, ' C: ', $c;
echo "A: $a B: $b C: $c";
Run Code Online (Sandbox Code Playgroud)
echo 'A: ', $a, ' B: ', $b, ' C: ', $c;
Run Code Online (Sandbox Code Playgroud)
将是最快的,因为这里字符串的所有部分都直接复制到输出流,而其他变体将涉及字符串部分的第一次连接."连接"意味着对于字符串的每个部分,必须分配新的内存块并将前一个字符串复制到其中.
我将通过以下示例来说明它
echo 'Hallo', ' ', 'World', '!', "\n", 'How are you?';
// vs.
echo 'Hallo' . ' ' . 'World' . '!' . "\n" . 'How are you?';
Run Code Online (Sandbox Code Playgroud)
第一个将5个字节+ 1个字节+5个字节+ 1个字节+ 1个字节+12个字节复制到输出流,从而复制25个字节.第二个创建一个包含5个字节的字符串,然后创建一个包含6个字节的字符串并将5 + 1个字节复制到其中,然后创建一个包含11个字节的字符串并将6 + 5个字节复制到其中,然后创建一个包含12个字节的字符串将11 + 1个字节复制到其中,然后创建一个包含13个字节的字符串并将12 + 1个字节复制到其中,然后创建一个包含25个字节的字符串,并将13 + 12个字节复制到其中,然后最终复制这些字节.字节到输出缓冲区.这将复制92个字节,并完成更多的内存分配.
但实际上,你不应该关心这一点.我非常怀疑你的应用程序的瓶颈是echo
性能;)
但是仍然有一个原因,我使用逗号而不是连接运算符:逗号具有所有运算符优先级中最低的.这样你就不必写括号.
例如,这将工作:
echo 'The script executed in ', microtime(true) - $startTime, ' seconds';
Run Code Online (Sandbox Code Playgroud)
虽然这不会按预期工作(我认为是未定义的行为):
echo 'The script executed in ' . microtime(true) - $startTime . ' seconds';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1618 次 |
最近记录: |