php专区

 首页 > php专区 > PHP应用 > 常用功能 > php中用缓存与不用缓存性能测试 - php高级应用

php中用缓存与不用缓存性能测试 - php高级应用

分享到:
【字体:
导读:
          在未看到这篇文章之前我们一般不会对于缓存这么看重,经过测试之后我们发现使用文件缓存比直接使用数据库要快几倍,下面测试是6倍之多,下面一起来看看吧.在Thinkphp项目中测试各种环...

php中用缓存与不用缓存性能测试

在未看到这篇文章之前我们一般不会对于缓存这么看重,经过测试之后我们发现使用文件缓存比直接使用数据库要快几倍,下面测试是6倍之多,下面一起来看看吧.

在Thinkphp项目中测试各种环境下的程序执行时间,不使用缓存,代码如下:

  1. header("content-type:text/html;charset=utf-8"); 
  2. $starttime=caltime();//开始时间    
  3. $articles=array(); 
  4. //循环取出500条文章信息 
  5. for($i=0;$i<100;$i++){ 
  6.    $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5"
  7.    $articles=array_merge($articles,M('article')->query($sql)); 
  8. }//开源代码phpfensi.com 
  9.  
  10. $overtime=caltime();//结束时间 
  11.  
  12. echo '不使用缓存条件下程序执行时间是:'.($overtime-$starttime).'秒'
  13.  
  14. ?> 

结果:不使用缓存条件下程序执行时间是:0.0600001811981秒,文件缓存,代码如下:

  1. header("content-type:text/html;charset=utf-8"); 
  2.  
  3. $starttime=caltime();//开始时间 
  4.  
  5. $articles=S('articles'); 
  6. if(!$articles){ 
  7.    $articles=array(); 
  8.    //循环取出500条 www.phpfensi.com 文章信息 
  9.    for($i=0;$i<100;$i++){ 
  10.        $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5"
  11.        $articles=array_merge($articles,M('article')->query($sql)); 
  12.    } 
  13.    S('articles',$articles,60); 
  14.  
  15. $overtime=caltime();//结束时间 
  16.  
  17. echo '使用文件缓存条件下程序执行时间是:'.($overtime-$starttime).'秒'
  18. ?> 

结果:使用文件缓存条件下程序执行时间是:0.00999999046326秒,代码如下:

  1. header("content-type:text/html;charset=utf-8"); 
  2.         
  3. $starttime=caltime();//开始时间 
  4.  
  5. $mem=new Memcache(); 
  6. if(!$mem->connect('127.0.0.1',11211)){ 
  7.    echo '连接失败'
  8.  
  9. $articles=$mem->get('articles'); 
  10.  
  11. if(!$articles){ 
  12.    $articles=array(); 
  13.    //循环取出500条文章信息 
  14.    for($i=0;$i<100;$i++){ 
  15.        $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5"
  16.        $articles=array_merge($articles,M('article')->query($sql)); 
  17.    } 
  18.    $mem->set('articles',$articles,MEMCACHE_COMPRESSED,60); 
  19.  
  20. $overtime=caltime();//结束时间 
  21.  
  22. echo '使用memcache缓存条件下程序执行时间是:'.($overtime-$starttime).'秒'
  23. ?> 

结果:使用memcache缓存条件下程序执行时间是:0.00999999046326秒,代码如下:

  1. header("content-type:text/html;charset=utf-8"); 
  2.         
  3. $starttime=caltime();//开始时间 
  4.  
  5. $redis=new Redis(); 
  6. $redis->connect('127.0.0.1','6379'); 
  7.  
  8. if(!$redis){ 
  9.    echo '连接失败'
  10.  
  11. $articles=$redis->get('articles'); 
  12.  
  13. if(!$articles){ 
  14.    $articles=array(); 
  15.    //循环取出500条www.phpfensi.com文章信息 
  16.    for($i=0;$i<100;$i++){ 
  17.        $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5"
  18.        $articles=array_merge($articles,M('article')->query($sql)); 
  19.    } 
  20.    $redis->setex('articles',60,$articles); 
  21.  
  22. $overtime=caltime();//结束时间 
  23.  
  24. echo '使用redis缓存条件下程序执行时间是:'.($overtime-$starttime).'秒'
  25.  
  26. ?> 

结果:使用redis缓存条件下程序执行时间是:0.00999999046326秒,可见使用缓存的条件下,程序的执行速度比不使用缓存的时候快了6倍,但是不同缓存由于数据不是特别庞大,几乎没有什么差别.

分享到:
定时执行php文件例子(php计划任务) - php...
定时执行php文件例子(php计划任务) 本文章给各位整理了三种php计划任务的例子,分别是利用了windows,linux及php的ignore_user_abort的函数来执行,下面我给大家分别举几个例子,有兴趣的朋友可进入参考. WINDOWS中设置计划任务执行PHP文件 1、写一个PHP程序,命名为test.php,内容如下所示,代码...
PHPEXCEL导入excel表格生成数组 - php高...
PHPEXCEL导入excel表格生成数组 本方法使用PHPEXCEL插件读取excel文件转化为数组了,后期还有没有完成的我们可以把转换成数组之后再保存到mysql数据库这个就非常的方便了,代码如下:  
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……