PHP编程之提高程序运行效率思路实例讲解_PHP教程

php中文网
发布: 2016-07-13 17:42:39
原创
842人浏览过

从这里就可以看到,第二段代码会因应数组中的键的个数去不停地作出判断次数为1 2 3的判断,所以变成了第一段代码判断次数是3,而第二段代码判断次数是6次

从.NET转去做PHP4年了,最近开始追求高性能了~~
所以开始觉得是时候要写写博客了~
来段发现物先~
php
$arr = array(
attr1 => 1 ,
attr2 => 1 ,
attr3 => 1 ,
);
$startTime = microtime( true );
for( $i = 0 ; $i {
if( isset( $arr[attr1] ) )
{
}
if( isset( $arr[attr2] ) )
{
}
if( isset( $arr[attr3] ) )
{
}
}
$endTime = microtime( true );
printf( "%d us. " , ( $endTime - $startTime ) * 1000000 );
$startTime = microtime( true );
for( $i = 0 ; $i {
foreach( $arr as $key => $value )
{
switch( $key )
{
case attr1:
break;
case attr2:
break;
case attr3:
break;
}
}
}
$endTime = microtime( true );
printf( "%d us. " , ( $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次

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/486047.htmlTechArticle从这里就可以看到,第二段代码会因应数组中的键的个数去不停地作出判断次数为1 2 3的判断,所以变成了第一段代码判断次数是3,而第二...
相关标签:
php
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号