• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • PHP程序加速探索之代碼優化

    發表于:2007-09-07來源:作者:點擊數: 標簽:
    掌握了PEAR::BenchMark,現在你已經知道如何 測試 你的代碼,知道如何判斷你的代碼是快是慢,是哪一部份比較慢。那么接下來我要說的就是如何消滅或優化那部份慢的代碼。 這一點上我個人最主要的經驗只有兩點,一是消除錯誤的或低效的循環;二是優化 數據庫 查
    掌握了PEAR::BenchMark,現在你已經知道如何測試你的代碼,知道如何判斷你的代碼是快是慢,是哪一部份比較慢。那么接下來我要說的就是如何消滅或優化那部份慢的代碼。

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

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

      badloops.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] . ' --> ';
     }
    }


    熱門推薦 化繁為簡 QQ最實用的六大絕招 QQ2005 Beta3功能搶先使用評測
    [1] [2]下一頁

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>