资讯专栏INFORMATION COLUMN

php代码时间消耗统计类

kelvinlee / 2401人阅读

摘要:我统计的结果,环境下基本上拉取条数据需要,这个数据还是相当高了,接下来找找方法看看能不能优化。使用举例代码段代码消耗代码段代码消耗服务器端服务消耗时间统计年月日是对于前面代码功能的注释标签科学计数法的处理暂时没做总计时间

这段时间在做项目的后端服务优化,数据量比较大的两个后台服务一个是首页微博列表获取,一个是个人动态的获取,先从性能来分析,需要用到时间统计,所以抽时间写了一个函数的时间消耗统计类,实现上比较简单,但是还算好用,分享给大家,如果有错误或者可以改进的话欢迎指出。
我统计的结果,wifi环境下基本上拉取16条数据需要3~4s,这个数据还是相当高了,接下来找找方法看看能不能优化。

使用举例:
recordNow("代码A消耗");
    #代码段B
    $myTimeHelper->recordNow("代码B消耗");
    $myTimeHelper->printInfo();

?>


TimeHelper.class.php

// +----------------------------------------------------------------------

/**
 * doSchool-服务器端 服务消耗时间统计API
 * @author    congorz 
 * @lastdate 2014年12月25日19:51:31
 */
class TimeHelper{

    private $startTime;
    private $tempTime;
    private $spendTime;
    private $recordString;

    public function __construct() {
        $this->startTime = microtime(true);
        $this->tempTime = array();
        $this->spendTime = array();
        $this->recordStrs = array();
        $this->tempTime[] = $this->startTime;
    }

    public function recordNow($str) {
        //str是对于前面代码功能的注释标签
        $this->recordStrs[] = $str;
        $this->tempTime[] = microtime(true);
    }

    public function handle() {
        $count = count($this->tempTime);
        $total = 0;
        for ($i=1; $i < $count; $i++) {
            $oneSpend = $this->tempTime[$i] - $this->tempTime[$i-1];
            $str_oneSpend = var_export($oneSpend, TRUE);  
            if(substr_count($str_oneSpend,"E")){
                //科学计数法的处理,暂时没做
            }
            $total += $oneSpend;
            $tempStr = $this->recordStrs[$i-1];
            $this->spendTime["$tempStr"] = $oneSpend;
        }
        $this->spendTime["总计时间"] = $total;
    }

    public function printInfo() {
        $this->handle();
        print_r($this->spendTime);
    }
}
?>

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20947.html

相关文章

  • 【译】PHP:40+开发工具推荐

    摘要:今天,就为开发者介绍个方便的工具。对开发者来说,是一个非常有用的工具,它提供了超过个有用的函数。该工具检查输入源代码和报告任何违反给定的标准。框架是一个开发的工具。它侧重于安全性和性能,绝对是最安全的开发框架之一。 PHP是为Web开发设计的服务器脚本语言,但也是一种通用的编程语言。超过2.4亿个索引域使用PHP,包括很多重要的网站,例如Facebook、Digg和WordPress。...

    dreambei 评论0 收藏0
  • php curl getinfo的时间分析

    摘要:图示图解在中的几个比较重要的时间范围都已标记出来,如有错误,希望能够指正。 引言 在php中可以使用curl调用远程接口,在调用完成以后, 能够获取相关的内容和信息,但有时候, 我们需要统计这个调用过程的时间, 尤其是在使用curl做并发测试的时候,这个统计就尤为重要,针对其中关于时间的几个统计项,在curl中给出的中文解释非常模糊, 且网上针对这方面的资源并不好找,我在这里做个说明...

    miya 评论0 收藏0
  • Android移动客户端性能测试浅谈——电量

    摘要:性能测试除了需要监控内存占用流量等,还需要获取的电量数据,测试在可接受范围内,避免出现过度消耗电量的现象。这一栏显示了不同的充电方式对电量使用的影响。 本文由作者张迎贞授权网易云社区发布。 APP性能测试除了需要监控PCU、内存占用、流量等,还需要获取APP的电量数据,测试在可接受范围内,避免APP出现过度消耗电量的现象。手机有很多硬件模块:CPU,蓝牙,GPS,显示屏,Wifi,射频...

    Airy 评论0 收藏0
  • 数据引擎查询原理及应用

    摘要:基本概念数据查询引擎是大数据处理架构的核心组件之一,通常是面向数据应用层的直接接口。这个是的架构图,可以看到是对有一些模块上的依赖,它复用了的元数据。它也复用了的元数据之类的资源。 极牛技术实践分享活动 极牛技术实践分享系列活动是极牛联合顶级VC、技术专家,为企业、技术人提供的一种系统的线上技术分享活动。每期不同的技术主题,和行业专家深度探讨,专注解决技术实践难点,推动技术创新,每...

    李涛 评论0 收藏0
  • Arthas使用指南

    摘要:注意这个统计也会产生一定的开销这个接口本身开销比较大,因此会看到的线程占用一定的百分比,为了降低统计自身的开销带来的影响,可以把采样间隔拉长一些,比如毫秒。 Arthas 能为你做什么? 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在预发 debug 一下,难道只能通过加...

    darkerXi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<