• 技术文章 >后端开发 >php教程

    php测试代码执行消耗的内存和时间_PHP教程

    2016-07-13 16:57:12原创352
    在php中要测试代码执行消耗的内存和时间我们可以直接使用俩函数,microtime 和 memory_get_usage就可以了,下面我来给大家介绍介绍。

    我们先来看看microtime 和 memory_get_usage函数用法吧

    义和用法

    microtime() 函数返回当前 Unix 时间戳和微秒数。

    语法

    microtime(get_as_float)参数 描述
    get_as_float 如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。

    例子

    代码如下 复制代码
    echo(microtime());
    ?>

    输出:

    0.25139300 1138197510

    一,函数原型

    int memory_get_usage ([ bool $real_usage=false ] )

    二,版本兼容

    PHP 4 >= 4.3.2,PHP 5

    三,基础用法与实例

    1,获取当前的内存消耗量

    代码如下 复制代码

    echo memory_get_usage();
    $var=str_repeat(www.bKjia.c0m,10000);
    echo memory_get_usage();
    unset($var);
    echo memory_get_usage();
    ?>

    结果输出:62328 122504 62416

    说明:memory_get_usage() 函数输出的数值为 bytes 单位

    2,格式化 memory_get_usage() 结果以 KB 为单位输出

    代码如下 复制代码
    function convert($size){
    $unit=array('b','kb','mb','gb','tb','pb');
    return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
    }
    echo convert(memory_get_usage(true));
    ?>

    265KB

    好了两个函数基本介绍完了,下面我来看一个测试实例

    代码如下 复制代码

    $t1 = microtime(true);
    $m1 = memory_get_usage(true);
    echo fixByte($m1). '
    ';

    /*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/

    /*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/

    $t2 = microtime(true);
    $m2 = memory_get_usage(true);
    echo '
    ' . fixByte($m2). '
    ';

    echo '


    ';
    echo 'time ' . round(($t2 - $t1), 4) .'
    ';
    echo 'mem ' . fixByte($m2 - $m1) . '
    ';

    /**
    * 格式化字节为合适的数值
    * @param int $byte 字节数
    * @param string $string 格式化的可读性强的字节数
    */
    function fixByte($byte, $string = true, $dot_num = 9) {
    $ret = array(
    'data'=>$byte,
    'danwei'=>'Byte',
    );

    if ($byte < 1024) {

    } else if ($byte < 1024*1024) {
    $ret['data'] = round($byte / 1024, $dot_num);
    $ret['danwei']='K';
    } else if ($byte < 1024*1024*1024) {
    $ret['data'] = round($byte / (1024*1024), $dot_num);
    $ret['danwei']='M';
    } else if ($byte < 1024*1024*1024*1024) {
    $ret['data'] = round($byte / (1024*1024*1024), $dot_num);
    $ret['danwei']='GB';
    } else if ($byte < 1024*1024*1024*1024*1024) {
    $ret['data'] = round($byte / (1024*1024*1024*1024), $dot_num);
    $ret['danwei']='TB';
    }

    if ($string) {
    $ret = $ret['data'] . ' ' . $ret['danwei'];
    }

    return $ret;
    }

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631551.htmlTechArticle在php中要测试代码执行消耗的内存和时间我们可以直接使用俩函数,microtime 和 memory_get_usage就可以了,下面我来给大家介绍介绍。 我们先来...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 测试 代码 执行 消耗 内存 时间 php 测试 代码 执行 消耗 内存 时间 我们
    上一篇:php中随机广告显示调用代码_PHP教程 下一篇:PHP正则表达式提取html超链接中的href地址_PHP教程
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php 验证码制作(网树注释思想)_PHP• PHP中重新定向到另一个页面_PHP• PHP4.04在英文win2000下的安装_PHP• 第十一节重载[11]_PHP• 第一节 简介_PHP
    1/1

    PHP中文网