|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
完成一个功能齐全的动态站点 若何没落或优化那PHP开辟网站法式的代码呢?
这一点上我团体最次要的经历只要两点,一是消弭毛病的或低效的轮回;二是优化数据库查询语句。其实还存在一些其它的优化细节,好比“str_replace比ereg_replace快”、“echo比print快”等等。这些我临时都放在一边,稍后我会提到用缓存来凑合过于频仍的IO。
上面咱们将三个功效不异,但法式写法分歧的函数的效力(损耗的工夫)停止对照。
webjx.php
<?php
require_once('Benchmark/Iterate.php');
define('MAX_RUN',100);
$data = array(1, 2, 3, 4, 5);
doBenchmark('v1', $data);
doBenchmark('v2', $data);
doBenchmark('v3', $data);
function doBenchmark($functionName = null, $arr = null)
{
reset($arr);
$benchmark = new Benchmark_Iterate;
$benchmark->run(MAX_RUN, $functionName, $arr);
$result = $benchmark->get();
echo '<br>';
printf("%s ran %d times where average exec time %.5f ms",$functionName,$result['iterations'],$result['mean'] * 1000);
}
function v1($myArray = null) {
// 效力很差的轮回
for ($i =0; $i < sizeof($myArray); $i++)
{
echo '<!--' . $myArray[$i] . ' --> ';
}
}
function v2($myArray = null) {
// 效力略有进步
$max = sizeof($myArray);
for ($i =0; $i < $max ; $i++)
{
echo '<!--' . $myArray[$i] . ' --> ';
}
}
function v3($myArray = null){
//最好效力
echo "<!--", implode(" --> <!--", $myArray), " --> ";
}
?> 法式输入的了局也许是如许的:
v1 ran 100 times where average exec time 0.18400 ms
v2 ran 100 times where average exec time 0.15500 ms
v3 ran 100 times where average exec time 0.09100 ms
可以看到,函数的履行工夫变少,效力上升。
函数v1有个很分明的毛病,每次轮回的工夫,都需求挪用sizeof()函数来盘算。 函数v2则在轮回外把$myArray数组的元素个数存到$max变量中,防止了每次轮回都要盘算数组的元素个数,所以效力进步了。函数v3的效力最高,使用了现成的函数,防止轮回。
这个例子只是给你一个理性的熟悉,分明甚么是绝对高效的代码。在实践开辟中,我信任会有良多人会恍恍惚惚地写出良多低效力的代码。要把代码写得精华精辟而高效,生怕需求工夫去锻炼:-) 但这是另外一个话题了,咱们略过不谈。
数据库使用根基上每一个PHP法式城市用到,在实践开辟中我发明最影响全部体系效力的就是数据库这部分。至于数据库的优化和数据查询语句的优化,在此限于篇幅不具体会商。
不懂的问题有很多高手帮你解决。但不要认为你是新手,就不能帮助别人,比如今天你学会了怎样安装PHP,明天还可能有朋友会问这个问题,你就可以给他解答,不要认为这是浪费时间,忙别人其实就是帮助自己。 |
|