栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在php5中使用内联字符串与串联的速度差异?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在php5中使用内联字符串与串联的速度差异?

好吧,就像所有“现实生活中可能更快”的问题一样,您无法击败现实生活中的考验。

function timeFunc($function, $runs){  $times = array();  for ($i = 0; $i < $runs; $i++)  {    $time = microtime();    call_user_func($function);    $times[$i] = microtime() - $time;  }  return array_sum($times) / $runs;}function Method1(){   $foo = 'some words';  for ($i = 0; $i < 10000; $i++)    $t = "these are $foo";}function Method2(){  $foo = 'some words';  for ($i = 0; $i < 10000; $i++)    $t = "these are {$foo}";}function Method3() {  $foo = 'some words';  for ($i = 0; $i < 10000; $i++)    $t = "these are " . $foo;}print timeFunc('Method1', 10) . "n";print timeFunc('Method2', 10) . "n";print timeFunc('Method3', 10) . "n";

进行几次运行以分页显示所有内容,然后…

0.0035568

0.0035388

0.0025394

因此,正如预期的那样,插值实际上是相同的(噪声级别差异,可能是由于插值引擎需要处理的额外字符)。直接串联的速度约为速度的66%,这并不是很大的冲击。插值分析器将查找,无所事事,然后以简单的内部字符串concat完成。即使concat非常昂贵,在
完成 所有工作以解析出变量并修剪/复制原始字符串 之后 ,插值器仍将必须这样做。

Somnath更新:

我将Method4()添加到上述实时逻辑中。

function Method4() {  $foo = 'some words';  for ($i = 0; $i < 10000; $i++)    $t = 'these are ' . $foo;}print timeFunc('Method4', 10) . "n";Results were:0.00147390.00155740.00119550.001169

当您只声明一个字符串而又不需要解析该字符串时,为什么还要混淆PHP调试器来解析。我希望你明白我的意思。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416984.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号