不使用快取和不同快取下程式的效率測試

2022-04-03 18:15:59 字數 1728 閱讀 3566

在thinkphp專案中測試各種環境下的程式執行時間

不使用快取:

<?php

header("content-type:text/html;charset=utf-8");

$starttime=caltime();//開始時間    

$articles=array();

//迴圈取出500條文章資訊

for($i=0;$i<100;$i++)

$overtime=caltime();//結束時間

echo '不使用快取條件下程式執行時間是:'.($overtime-$starttime).'秒';

?>

結果:不使用快取條件下程式執行時間是:0.0600001811981秒

檔案快取:

<?php

header("content-type:text/html;charset=utf-8");

$starttime=caltime();//開始時間

$articles=s('articles');

if(!$articles)

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))

$articles=$mem->get('articles');

if(!$articles)

$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)

$articles=$redis->get('articles');

if(!$articles)

$redis->setex('articles',60,$articles);

}$overtime=caltime();//結束時間

echo '使用redis快取條件下程式執行時間是:'.($overtime-$starttime).'秒';

?>

結果:使用redis快取條件下程式執行時間是:0.00999999046326秒

可見使用快取的條件下,程式的執行速度比不使用快取的時候快了6倍,

但是不同快取由於資料不是特別龐大,幾乎沒有什麼差別

小程式快取 快取使用者在不同頁面選擇的多個物件

首先,我們專案需求,使用者需要選擇車的品牌 品牌對應下的系列 系列下對應的車型 車型下對應的年份。那麼一共就是要給後台傳遞使用者選擇的四個值,但這四個值是依次選擇的,有乙個依賴關係,不能跨列選擇。所以,我就用快取的 方式來快取使用者依次選擇的值。但是,四個值用快取肯定得用乙個物件來裝這四個值 1.當...

不使用資料庫快取依賴項實現同樣的功能

不使用快取 來回和資料庫打交道 非常耗時 造成效率低 尤其是在資料量非常龐大的情況下 可是加了快取 加多少時間的快取?新聞要保證實時更新 一發布立刻顯示出來 微軟給出了解決方法 資料庫快取依賴項 但是貌似只能用在sql上 而且要配置些東西 還有 並不透明 一些東西看不到 感興趣的朋友可以查下msdn...

python中使用函式和不使用函式程式的比較

1 不使用函式 list1 aaaa bbbb cccc list2 while list1 temp list1.pop print f printing model print nthe following model had been printed for i in list2 print ...