亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php 高性能書寫

 更新時(shí)間:2010年12月11日 22:50:10   作者:  
從這里就可以看到,第二段代碼會(huì)因應(yīng)數(shù)組中的鍵的個(gè)數(shù)去不停地作出判斷次數(shù)為1+2+3的判斷,所以變成了第一段代碼判斷次數(shù)是3,而第二段代碼判斷次數(shù)是6次
從.NET轉(zhuǎn)去做PHP4年了,最近開始追求高性能了~~
所以開始覺得是時(shí)候要寫寫博客了~
來段發(fā)現(xiàn)物先~
復(fù)制代碼 代碼如下:

$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 );

上面一段代碼
輸出結(jié)果是
us.
us.
然而,怎么看都是第一段比第二段繁瑣,而且結(jié)構(gòu)沒有第二段清晰,
那么為什么第一段會(huì)比第二段執(zhí)行快了這么多呢
我們可以看到第一段的代碼中,只有3個(gè)if,
那么第二段會(huì)有多少個(gè)呢。
我們拆開了switch這個(gè)東西,可以去看看他的基本實(shí)現(xiàn)原理。
如果switch中,每一段case中都是使用break;結(jié)束的話,
其實(shí)這個(gè)switch好比多個(gè)if{}else if{}

所以從這個(gè)機(jī)制,我們就可以把的
復(fù)制代碼 代碼如下:

foreach( $arr as $key => $value )
{
switch( $key )
{
case 'attr1':
break;
case 'attr2':
break;
case 'attr3':
break;
}
}

轉(zhuǎn)換成
復(fù)制代碼 代碼如下:

foreach( $arr as $key => $value )
{
if( $key == 'attr1' )
{

}
else if( $key == 'attr2' )
{

}
else if( $key == 'attr3' )
{

}
}


去理解,
從這里就可以看到,第二段代碼會(huì)因應(yīng)數(shù)組中的鍵的個(gè)數(shù)去不停地作出判斷次數(shù)為1+2+3的判斷,所以變成了第一段代碼判斷次數(shù)是3,而第二段代碼判斷次數(shù)是6次


所以就導(dǎo)致了執(zhí)行效率相差了接近一倍的速度。
您可能感興趣的文章:

相關(guān)文章

最新評(píng)論