在Thinkphp項目中測試各種環境下的程式執行時間
不使用緩衝:
代碼如下 |
複製代碼 |
<?php header("content-type:text/html;charset=utf-8"); $starttime=caltime();//開始時間 $articles=array(); //迴圈取出500條文章資訊 for($i=0;$i<100;$i++){ $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5"; $articles=array_merge($articles,M('article')->query($sql)); } $overtime=caltime();//結束時間 echo '不使用緩衝條件下程式執行時間是:'.($overtime-$starttime).'秒'; ?> |
結果:不使用緩衝條件下程式執行時間是:0.0600001811981秒
檔案快取:
代碼如下 |
複製代碼 |
<?php header("content-type:text/html;charset=utf-8"); $starttime=caltime();//開始時間 $articles=S('articles'); if(!$articles){ $articles=array(); //迴圈取出500條 www.111cn.net 文章資訊 for($i=0;$i<100;$i++){ $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5"; $articles=array_merge($articles,M('article')->query($sql)); } S('articles',$articles,60); } $overtime=caltime();//結束時間 echo '使用檔案快取條件下程式執行時間是:'.($overtime-$starttime).'秒'; ?> |
結果:使用檔案快取條件下程式執行時間是:0.00999999046326秒
代碼如下 |
複製代碼 |
<?php header("content-type:text/html;charset=utf-8"); $starttime=caltime();//開始時間 $mem=new Memcache(); if(!$mem->connect('127.0.0.1',11211)){ echo '串連失敗'; } $articles=$mem->get('articles'); if(!$articles){ $articles=array(); //迴圈取出500條文章資訊 for($i=0;$i<100;$i++){ $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5"; $articles=array_merge($articles,M('article')->query($sql)); } $mem->set('articles',$articles,MEMCACHE_COMPRESSED,60); } $overtime=caltime();//結束時間 echo '使用memcache緩衝條件下程式執行時間是:'.($overtime-$starttime).'秒'; ?> |
結果:使用memcache緩衝條件下程式執行時間是:0.00999999046326秒
代碼如下 |
複製代碼 |
<?php header("content-type:text/html;charset=utf-8"); $starttime=caltime();//開始時間 $redis=new Redis(); $redis->connect('127.0.0.1','6379'); if(!$redis){ echo '串連失敗'; } $articles=$redis->get('articles'); if(!$articles){ $articles=array(); //迴圈取出500條www.111cn.net文章資訊 for($i=0;$i<100;$i++){ $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5"; $articles=array_merge($articles,M('article')->query($sql)); } $redis->setex('articles',60,$articles); } $overtime=caltime();//結束時間 echo '使用redis緩衝條件下程式執行時間是:'.($overtime-$starttime).'秒'; ?> |
結果:使用redis緩衝條件下程式執行時間是:0.00999999046326秒
可見使用緩衝的條件下,程式的執行速度比不使用緩衝的時候快了6倍,
但是不同緩衝由於資料不是特別龐大,幾乎沒有什麼差別