最新国产好看的视频,伊人天堂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這個東西,可以去看看他的基本實(shí)現(xiàn)原理。
如果switch中,每一段case中都是使用break;結(jié)束的話,
其實(shí)這個switch好比多個if{}else if{}

所以從這個機(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' )
{

}
}


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


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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    11個PHP 分頁腳本推薦

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

    PHP封裝的MSSql操作類完整實(shí)例

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

最新評論

项城市| 房山区| 崇信县| 都兰县| 成都市| 昭通市| 湄潭县| 海阳市| 惠安县| 新源县| 道孚县| 齐齐哈尔市| 通山县| 井陉县| 大方县| 木里| 洛扎县| 永吉县| 孝昌县| 文化| 竹溪县| 那坡县| 曲水县| 错那县| 弥渡县| 巫山县| 灵川县| 深圳市| 敦化市| 连云港市| 额尔古纳市| 扬中市| 安平县| 开远市| 丹寨县| 渝中区| 汝州市| 辽阳县| 松潘县| 左云县| 新巴尔虎左旗|