最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php 高性能書寫

 更新時間:2010年12月11日 22:50:10   作者:  
從這里就可以看到,第二段代碼會因應(yīng)數(shù)組中的鍵的個數(shù)去不停地作出判斷次數(shù)為1+2+3的判斷,所以變成了第一段代碼判斷次數(shù)是3,而第二段代碼判斷次數(shù)是6次
從.NET轉(zhuǎn)去做PHP4年了,最近開始追求高性能了~~
所以開始覺得是時候要寫寫博客了~
來段發(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)沒有第二段清晰,
那么為什么第一段會比第二段執(zhí)行快了這么多呢
我們可以看到第一段的代碼中,只有3個if,
那么第二段會有多少個呢。
我們拆開了switch這個東西,可以去看看他的基本實現(xiàn)原理。
如果switch中,每一段case中都是使用break;結(jié)束的話,
其實這個switch好比多個if{}else if{}

所以從這個機制,我們就可以把的
復(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' )
{

}
}


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


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

相關(guān)文章

  • PHP遠程連接oracle數(shù)據(jù)庫操作實現(xiàn)方法圖文詳解

    PHP遠程連接oracle數(shù)據(jù)庫操作實現(xiàn)方法圖文詳解

    這篇文章主要介紹了PHP遠程連接oracle數(shù)據(jù)庫操作實現(xiàn)方法,結(jié)合圖文形式詳細分析了php連接Oracle數(shù)據(jù)庫的相關(guān)配置、實現(xiàn)方法、遇到的問題、解決方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-04-04
  • php中time()與$_SERVER[REQUEST_TIME]用法區(qū)別

    php中time()與$_SERVER[REQUEST_TIME]用法區(qū)別

    這篇文章主要介紹了php中time()與$_SERVER[REQUEST_TIME]用法區(qū)別,詳細分析了time()與$_SERVER[REQUEST_TIME]的用法,并以實例形式對比總結(jié)了二者在獲取當前系統(tǒng)時間戳與請求時間戳的區(qū)別,需要的朋友可以參考下
    2014-11-11
  • 教你如何快捷的使用cmd訪問mysql小技巧

    教你如何快捷的使用cmd訪問mysql小技巧

    平時我們?nèi)绻胗胏md訪問mysql數(shù)據(jù)庫,需要先一步步進入到mysql的目錄下,才能執(zhí)行MYSQL命令,進行操作,下面介紹一種直接在cmd中執(zhí)行mysql命令的方法,大贊!
    2014-05-05
  • PHP中加密解密函數(shù)與DES加密解密實例

    PHP中加密解密函數(shù)與DES加密解密實例

    這篇文章主要介紹了PHP中加密解密函數(shù)與DES加密解密,以實例形式分析了常用的PHP加密解密算法encrypt與DES加密解密的原理及應(yīng)用方法,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • php實現(xiàn)俄羅斯乘法實例

    php實現(xiàn)俄羅斯乘法實例

    這篇文章主要介紹了php實現(xiàn)俄羅斯乘法,實例分析了俄羅斯乘法的原理與代碼實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • php以fastCGI的方式運行時文件系統(tǒng)權(quán)限問題及解決方法

    php以fastCGI的方式運行時文件系統(tǒng)權(quán)限問題及解決方法

    在IIS7.0上以FastCGI方式配置好PHP運行環(huán)境,測試可以正常運行PHP程序后,將PHP程序部署上去,導(dǎo)入程序原來的數(shù)據(jù)和配置信息。很快就有問題出來啦下面我們就詳細記錄下。
    2015-05-05
  • centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法分析

    centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法分析

    這篇文章主要介紹了centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法,結(jié)合實例形式分析了centos7環(huán)境下swoole1.9的安裝、配置方法以及HttpServer的相關(guān)使用技巧,需要的朋友可以參考下
    2020-03-03
  • php計數(shù)排序算法的實現(xiàn)代碼(附四個實例代碼)

    php計數(shù)排序算法的實現(xiàn)代碼(附四個實例代碼)

    計數(shù)排序(Counting sort)是一種根據(jù)小整數(shù)鍵對一組對象排序的算法;也就是說,它是一個整數(shù)排序算法。它通過計算具有不同鍵值的對象的數(shù)量,并對這些數(shù)量使用算術(shù)來確定輸出序列中每個鍵值的位置
    2020-03-03
  • 11個PHP 分頁腳本推薦

    11個PHP 分頁腳本推薦

    Web開發(fā)中,分頁設(shè)計必不可少。本文列舉了10個PHP分頁腳本,希望對你的web開發(fā)會有幫助。 列表中大部分,提供演示和代碼下載。
    2011-08-08
  • PHP封裝的MSSql操作類完整實例

    PHP封裝的MSSql操作類完整實例

    這篇文章主要介紹了PHP封裝的MSSql操作類,以完整實例形式分析了php封裝的各種常用的mssql數(shù)據(jù)庫的操作,包括針對mssql數(shù)據(jù)庫的連接與增刪改查等,需要的朋友可以參考下
    2016-05-05

最新評論

阿瓦提县| 莱西市| 托克托县| 祁门县| 东源县| 雷州市| 谷城县| 清流县| 怀远县| 苍南县| 鄂托克旗| 兰坪| 巫山县| 鹿邑县| 涿州市| 云龙县| 利津县| 油尖旺区| 石屏县| 彭山县| 姜堰市| 云南省| 武隆县| 卢湾区| 丹寨县| 政和县| 苗栗市| 东丰县| 江陵县| 会理县| 镇赉县| 饶平县| 布尔津县| 禹州市| 包头市| 麻栗坡县| 莱阳市| 兴安县| 太谷县| 桂阳县| 澄迈县|