文档章节

php debug记录程序执行时间和执行情况

fzxu_05
 fzxu_05
发布于 2015/07/06 10:29
字数 210
阅读 639
收藏 6
/**
 * debuging('dtrace'); //查看调用栈
 * debuging($var); //打印$var(var_dump)
 * debuging($var, 'php'); //打印$var(var_export)
 * debuging($var, $echo, 2); //以json格式输出$var
 * debuging(__LINE__.__CLASS);//常用于大量if语句体定位, 或者寻找程序结束点
 */
function debuging($var = '', $echo = '', $die = false, $force = false) {
  static $clear;
  if (0 && $clear === null) {
    ob_end_flush ();
    $clear = true;
  }
  static $d;
  if (0 && empty ( $d )) {
    $d = 1;
    debuging ( 'dtrace' );
  }
  
  $force && $_GET ['debug'] = 1;
  if (isset ( $_GET ['debug'] )) {
    if ('dtrace' === $var) {
      dTrace ( $die );
    } elseif ($die === 2) {
      header ( 'Content-type: application/json' );
      echo json_encode ( $var );
    } else {
      echo "<pre>\n";
      if ($echo) {
        echo "$echo:";
      }
      if ($echo === 'php')
        var_export ( $var );
      else
        var_dump ( $var );
      echo "</pre>\n";
    }
    $die && die ();
  }
}
function dTrace($die = false) {
  try {
    static $lastTime;
    $lastTime or $lastTime = $_SERVER ['REQUEST_TIME'];
    throw new Exception ();
  } catch ( Exception $e ) {
    $currTime = microtime ( true );
    $totalTime = $currTime - $_SERVER ['REQUEST_TIME'];
    $execTime = $currTime - $lastTime;
    $lastTime = $currTime;
    echo "\n<hr>\n";
    echo "execTime: $execTime s.<br/>\n";
    echo "totalTime: $totalTime s.<br/>\n";
    echo "Trace:<br/>\n";
   // echo $e->getTraceAsString() ;
    // debug_print_backtrace();$die && die;
    debuging ( $e->getTraceAsString (), 'php', $die );
  }
}

for($i=0;$i<100000;$i++) {

   $a +=$i;

}

dTrace();

© 著作权归作者所有

共有 人打赏支持
fzxu_05
粉丝 43
博文 165
码字总数 84201
作品 0
朝阳
程序员
私信 提问
使用xdebug调试PHP程序

为什么需要Debugger? 很多PHP程序员调试使用echo、print_r()、var_dump()、printf()等,其实对于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特...

鉴客
2012/03/13
3.3K
2
Salesforce 日志结构(一)

在开发过程中经常需要调试程序,但SF中不像JAVA开发可以借助IDE通过断点调试,观察每个变量的赋值情况从而查找问题, 那就只能借助日志,分析排错,大部分情况下我们都是通过System.debug()输...

在山的那边
2016/05/29
336
0
Xdebug的安装-(无错可执行版)

xdebug是一个开源的php调试器,以php模块的形式加载并被使用。可以用来跟踪,调试和分析PHP程序的运行状况. 这里以PHP5.2.13为例, 1.下载php_xdebug-2.1.0-5.2.dll文件, http://www.xdebug.o...

晨曦之光
2012/03/09
716
0
日志切割操作梳理(Logrotate/python/shell脚本实现)

本文转自:运维中的日志切割操作梳理(Logrotate/python/shell脚本实现) 对于 Linux 系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天...

blackfoxya
2018/06/28
0
0
weiboad/fierysdk

RagnarSDK 埋点库 简介 系统逐渐复杂后,多会依赖多个接口进行工作。但是由于网络等原因线上出现故障不能很快发现、定位、排查,依赖越多系统的调试愈发困难。 支持在线调试,在线调整分级日...

weiboad
2017/07/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
今天
7
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
6
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
11
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部