4

我正在努力优化我的 PHP 代码,并发现您可以通过这些方式加快回显速度 - 确切地说,您可以替换echo "The name of the user is $name" . ".";为:

  • echo 'The name of the user is '.$name.'.';
  • echo "The name of the user is", $name, ".";
  • echo sprintf("The name of the user is %s", $name);

哪个最快?如果可能的话,我不仅想看看基准测试,还想看看一些技术解释。

4

3 回答 3

11

首先,这是微优化,您可能最好为更快的服务器付费并开发更多产品,然后花费数小时进行微优化。然而根据http://micro-optimization.com/这里是结果:

sprintf() 比双引号慢 138.68%(慢 1.4 倍)

sprintf() 比单引号慢 163.72%(慢 1.6 倍)

于 2013-06-09T17:41:48.100 回答
3

上述评论是相关的。有更好的方法来优化您的代码。

也就是说,优化字符串的最佳方法是将它们弹出到列表中,然后连接列表。看看这篇文章作为一个很好的起点。

于 2013-06-09T17:42:09.127 回答
3

using 的变化sprintf()肯定是最慢的,因为 PHP 中的函数调用非常昂贵,并且sprintf()必须解析格式字符串。使用类似echo "abc ", $n, " xyz";实际编译为三个单个ZEND_ECHO操作码的东西,这意味着输出层被多次调用,这可能会很慢,具体取决于所使用的 SAPI。echo "abc $n xyz";无论您是使用还是echo "abc " . $n . " xyz";因为它们都编译为cocatenation操作,这并没有太大的区别。

于 2013-06-09T17:50:57.177 回答