好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

在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 ));  } //开源代码phpfensi.com     $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.phpfensi.com 文章信息       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.phpfensi.com文章信息       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倍,但是不同缓存由于数据不是特别庞大,几乎没有什么差别.

查看更多关于php中用缓存与不用缓存性能测试 - php高级应用的详细内容...

  阅读:50次