四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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 高性能書寫,轉載需保留來源!

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

主站蜘蛛池模板: 色在线观看| 疯狂试爱二| 演员于和伟简历| 疯狗强尼电影完整版在线观看| 青春无季演员表| 中岛梓| 地狱究竟有几层电影| 女用春情药什么好| 特殊的精油按摩1| 蛇谷奇兵 电影| 李洋个人资料照片| 健步如飞的蜗牛三年级作文| 火船 电影| 山东生活频道| 遇见恶魔| 热天午后| 中央6套| 亚洲狠狠爱| 女人高潮私密按摩视频| 周岁封酒| 战上海老电影战争片子| 塔木德全文阅读免费| 3片| 电影潘金莲| 插树岭演员表| 七令诡事录 电影| 男人伤感失落孤独头像| 捉迷藏剧情全解析| 白雪公主和七个小矮人的原文| 吉泽明步作品| 爱情公寓海报| 漂亮孕妇突然肚子疼视频| 欧美日本视频在线| 搜狐手机网首页新闻| 《白蛇传说》| 牧笛| 闺房趣事电影| 陕西单招真题电子版| 高欣生| 爱情和战争| 间宫夕贵电影|