前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php代码性能分析函数使用方法

php代码性能分析函数使用方法

原创
作者头像
好派笔记
修改2021-10-08 14:50:29
3540
修改2021-10-08 14:50:29
举报
文章被收录于专栏:好派笔记

microtime()

函数返回当前 Unix 时间戳和微秒数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的

memory_get_usage()

函数返回内存使用量,还可以有个参数,$real_usage,其值为布尔值。如果设置为 TRUE,获取系统分配的真实内存尺寸。如果未设置或者设置为 FALSE,将是 emalloc() 报告使用的内存量,单位为 byte(s),函数需要在Linux上运行。

memory_get_peak_usage()

函数返回内存使用峰值,函数需要在Linux上运行

getrusage()

返回CUP使用情况,函数需要在Linux上运行

使用方法:

代码语言:javascript
复制
/将可以将memory_get_usage()函数返回的byte为单位的内存使用量,转化为M为单位,本例子中没有用
  function memory_usage() {

   $memory = ( ! function_exists('memory_get_usage')) ? '0' : round(memory_get_usage()/1024/1024, 2).'MB';

     return $memory;

  }


//得到加上微妙在内的准确的时间戳
function microtime_float()

{

   list($usec, $sec) = explode(" ", microtime());

   return ((float)$usec + (float)$sec);

}

class t{

    static $start_time;

    static $end_time;

    static $start_memory;

    static $end_memory;

     

    public static function start()

    {

        self::$start_memory = memory_get_usage();  //单位为 byte(s)

        self::$start_time = microtime_float();

        echo '<br/>Start @'.self::$start_time.'('.self::$start_memory.')|------->';

    }

     

    public static function end()

    {

        self::$end_time = microtime_float();

        self::$end_memory = memory_get_usage();
        
        echo 'End @'.self::$end_time.'('.self::$end_memory.') :';

        echo '|======= 共耗时:'.(self::$end_time-self::$start_time).',共用内存:'.(self::$end_memory-self::$start_memory);

    }

}


  //消除t类首次加载的影响 
  t::start();
  t::end();

   t::start();
   $str = "我来到你的城市走过你来时的路,想象着没我的日子你是怎样的孤独";
   t::end();

   显示结果:

   Start @1447408386.0921(242528)|------->End @1447408386.0922(242720) :|======= 共耗时:3.6001205444336E-5,共用内存:192
   Start @1447408386.0922(242720)|------->End @1447408386.0922(242856) :|======= 共耗时:5.0067901611328E-6,共用内存:136

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用方法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档