天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php 高性能書寫

從.NET轉去做php4年了,最近開始追求高性能了~~
所以開始覺得是時候要寫寫博客了~
來段發現物先~
復制代碼 代碼如下:
$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{}

所以從這個機制,我們就可以把的
復制代碼 代碼如下:
foreach( $arr as $key => $value )
{
switch( $key )
{
case 'attr1':
break;
case 'attr2':
break;
case 'attr3':
break;
}
}

轉換成
復制代碼 代碼如下:
foreach( $arr as $key => $value )
{
if( $key == 'attr1' )
{

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

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

}
}


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


所以就導致了執行效率相差了接近一倍的速度。

php技術php 高性能書寫,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产特级毛片AAAAAAA高清 | 伊人久久大线蕉香港三级 | 欧美激情精品久久久久久不卡 | 999人在线精品播放视频 | 末班车动漫无删减免费 | YELLOW视频在线观看免费版高清 | 蜜臀AV中文字幕熟女人妻 | 青苹果乐园在线观看电视剧 | 国产午夜精品片一区二区三区 | 亚洲精品网址 | 狠狠躁天天躁小说 | 色就色 综合偷拍区欧美 | 日本又黄又裸一级大黄裸片 | 欧美最猛黑人XXXXWWW | 背着老婆爆操性感小姨子 | 韩国羞羞秘密教学子开车漫书 | 变形金刚7免费观看完整 | 甜性涩爱dvd| 91九色视频在线观看 | 亚洲第一伊人 | 久久久精品久久久久特色影视 | 亚洲午夜AV久久久精品影院色戒 | 精品无码久久久久久国产百度 | 年轻夫妇韩剧中文版免费观看 | 久久天天婷婷五月俺也去 | 欧美动物交ideos | 亚洲激情网站 | 九九热这里只有精品视频免费 | 自拍 偷拍 亚洲 经典 | 在线视频 日韩视频二区 | 成人无码精品1区2区3区免费看 | 日日干夜夜艹 | 先锋影音av最新资源网 | 好男人好资源在线观看免费视频 | 亚洲一二三产品区别在哪里 | 超碰 无码 中文字幕 | 成人 迅雷下载 | 国产午夜精品理论片在线 | 久久精品电影网 | 国产香蕉视频在线播放 | 精品人妻无码一区二区三区蜜桃臀 |