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

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

實(shí)用:動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)PHP的十個(gè)應(yīng)用技巧

2024-05-04 21:51:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

如何消滅或優(yōu)化那PHP開(kāi)發(fā)網(wǎng)站程序的代碼呢?

這一點(diǎn)上我個(gè)人最主要的經(jīng)驗(yàn)只有兩點(diǎn),一是消除錯(cuò)誤的或低效的循環(huán);二是優(yōu)化數(shù)據(jù)庫(kù)查詢語(yǔ)句。其實(shí)還存在一些其它的優(yōu)化細(xì)節(jié),比如“str_replace比ereg_replace快”、“echo比print快”等等。這些我暫時(shí)都放在一邊,稍后我會(huì)提到用緩存來(lái)對(duì)付過(guò)于頻繁的IO。

下面我們將三個(gè)功能相同,但程序?qū)懛ú煌暮瘮?shù)的效率(消耗的時(shí)間)進(jìn)行對(duì)比。

CuoXIn.php

以下為引用的內(nèi)容:

<?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) {
 // 效率很差的循環(huán)
 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), " --> ";
}

?>

  
程序輸出的結(jié)果大概是這樣的:

  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

可以看到,函數(shù)的執(zhí)行時(shí)間變少,效率上升。

函數(shù)v1有個(gè)很明顯的錯(cuò)誤,每一次循環(huán)的時(shí)間,都需要調(diào)用sizeof()函數(shù)來(lái)計(jì)算。 函數(shù)v2則在循環(huán)外把$myArray數(shù)組的元素個(gè)數(shù)存到$max變量中,避免了每次循環(huán)都要計(jì)算數(shù)組的元素個(gè)數(shù),所以效率提高了。函數(shù)v3的效率最高,利用了現(xiàn)成的函數(shù),避免循環(huán)。

這個(gè)例子只是給你一個(gè)感性的認(rèn)識(shí),明白什么是相對(duì)高效的代碼。在實(shí)際開(kāi)發(fā)中,我相信會(huì)有很多人會(huì)迷迷糊糊地寫出很多低效率的代碼。要把代碼寫得精煉而高效,恐怕需要時(shí)間去錘煉:-) 但這是另一個(gè)話題了,我們略過(guò)不談。

數(shù)據(jù)庫(kù)應(yīng)用基本上每個(gè)PHP程序都會(huì)用到,在實(shí)際開(kāi)發(fā)中我發(fā)現(xiàn)最影響整個(gè)系統(tǒng)效率的就是數(shù)據(jù)庫(kù)這部份。至于數(shù)據(jù)庫(kù)的優(yōu)化和數(shù)據(jù)查詢語(yǔ)句的優(yōu)化,在此限于篇幅不詳細(xì)討論。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 县级市| 林口县| 阿克陶县| 舞阳县| 湖北省| 科尔| 盐山县| 鹿泉市| 安龙县| 厦门市| 西和县| 秭归县| 海晏县| 衡山县| 南皮县| 阿尔山市| 工布江达县| 铁力市| 根河市| 辽阳县| 电白县| 城口县| 隆昌县| 汕头市| 舞阳县| 昌平区| 文山县| 开平市| 宁阳县| 平泉县| 合江县| 页游| 东至县| 黄平县| 镇坪县| 财经| 邹平县| 永昌县| 彰化市| 齐齐哈尔市| 陇川县|