zoukankan      html  css  js  c++  java
  • 不使用缓存和不同缓存下程序的效率测试

    在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条文章信息
       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条文章信息
       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倍,

    但是不同缓存由于数据不是特别庞大,几乎没有什么差别

  • 相关阅读:
    Java框架-Spring MVC理解004-spring MVC处理请求
    codeforces 484C Strange Sorting Codeforces Round #276 (Div. 1) C
    POJ 3415 Common Substrings 后缀数组+并查集
    HDU 5010 Get the Nut(2014 ACM/ICPC Asia Regional Xi'an Online)
    ZOJ 3817Chinese Knot(The 2014 ACM-ICPC Asia Mudanjiang Regional First Round)
    HDU 4946 Area of Mushroom(2014 Multi-University Training Contest 8)
    HDU 4951 Multiplication table(2014 Multi-University Training Contest 8)
    HDU 4938 Seeing People(2014 Multi-University Training Contest 7)
    HDU 4944 FSF’s game(2014 Multi-University Training Contest 7)
    HDU 4937 Lucky Number(2014 Multi-University Training Contest 7)
  • 原文地址:https://www.cnblogs.com/sheevy/p/4010647.html
Copyright © 2011-2022 走看看