加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php 高性能书写

发布时间:2020-05-24 20:53:25 所属栏目:PHP 来源:互联网
导读:从这里就可以看到,第二段代码会因应数组中的键的个数去不停地作出判断次数为1+2+3的判断,所以变成了第一段代码判断次数是3,而第二段代码判断次数是6次

从.NET转去做PHP4年了,最近开始追求高性能了~~
所以开始觉得是时候要写写博客了~
来段发现物先~
<div class="codetitle"><a style="CURSOR: pointer" data="54008" class="copybut" id="copybut54008" onclick="doCopy('code54008')"> 代码如下:<div class="codebody" id="code54008">
$arr = array(
'attr1' => 1,
'attr2' => 1,
'attr3' => 1,
);
$startTime = microtime( true );
for( $i = 0 ; $i < 1000 ; $i++ )
{
if( isset( $arr['attr1'] ) )
{ }
if( isset( $arr['attr2'] ) )
{ }
if( isset( $arr['attr3'] ) )
{ }
}
$endTime = microtime( true );
printf( "%d us.n",( $endTime - $startTime ) 1000000 );
$startTime = microtime( true );
for( $i = 0 ; $i < 1000 ; $i++ )
{
foreach( $arr as $key => $value )
{
switch( $key )
{
case 'attr1':
break;
case 'attr2':
break;
case 'attr3':
break;
}
}
}
$endTime = microtime( true );
printf( "%d us.n",( $endTime - $startTime )
1000000 );

上面一段代码
输出结果是
us.
us.
然而,怎么看都是第一段比第二段繁琐,而且结构没有第二段清晰,
那么为什么第一段会比第二段执行快了这么多呢
我们可以看到第一段的代码中,只有3个if,
那么第二段会有多少个呢。
我们拆开了switch这个东西,可以去看看他的基本实现原理。
如果switch中,每一段case中都是使用break;结束的话,
其实这个switch好比多个if{}else if{} 所以从这个机制,我们就可以把的
<div class="codetitle"><a style="CURSOR: pointer" data="45722" class="copybut" id="copybut45722" onclick="doCopy('code45722')"> 代码如下:<div class="codebody" id="code45722">
foreach( $arr as $key => $value )
{
switch( $key )
{
case 'attr1':
break;
case 'attr2':
break;
case 'attr3':
break;
}
}

转换成
<div class="codetitle"><a style="CURSOR: pointer" data="23695" class="copybut" id="copybut23695" onclick="doCopy('code23695')"> 代码如下:<div class="codebody" id="code23695">
foreach( $arr as $key => $value )
{
if( $key == 'attr1' )
{ }
else if( $key == 'attr2' )
{ }
else if( $key == 'attr3' )
{ }
}
去理解,
从这里就可以看到,第二段代码会因应数组中的键的个数去不停地作出判断次数为1+2+3的判断,所以变成了第一段代码判断次数是3,而第二段代码判断次数是6次
所以就导致了执行效率相差了接近一倍的速度。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读