国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

技巧:PHP開發網站程序代碼的優化方法

2024-05-04 23:03:09
字體:
來源:轉載
供稿:網友

  如何消滅或優化那php開發網站程序的代碼呢?

  這一點上我個人最主要的經驗只有兩點,一是消除錯誤的或低效的循環;二是優化數據庫查詢語句。其實還存在一些其它的優化細節,比如“str_replace比ereg_replace快”、“echo比print快”等等。這些我暫時都放在一邊,稍后我會提到用緩存來對付過于頻繁的io。

  下面我們將三個功能相同,但程序寫法不同的函數的效率(消耗的時間)進行對比。

  VeVb.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程序都會用到,在實際開發中我發現最影響整個系統效率的就是數據庫這部份。至于數據庫的優化和數據查詢語句的優化,在此限于篇幅不詳細討論。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦山县| 玉屏| 安塞县| 南陵县| 凤山县| 轮台县| 万州区| 漳州市| 吐鲁番市| 新蔡县| 逊克县| 桂林市| 故城县| 武夷山市| 贡觉县| 张家口市| 广昌县| 福鼎市| 永新县| 岳阳市| 绥阳县| 安化县| 云和县| 偏关县| 舒兰市| 南昌市| 榆社县| 泾源县| 临沧市| 崇义县| 泰和县| 石嘴山市| 内乡县| 滦平县| 冀州市| 永康市| 怀集县| 额尔古纳市| 福州市| 团风县| 弥勒县|