XDebug用法大全(一)

XDebug是一个开放源代码的PHP程序调试器(即一个Debug工具,可以用来跟踪,调试和分析PHP程序的运行状况。

一、堆栈化的错误调试

首先来看看Xdebug最基本的功能——堆栈化的错误调试,代码很简单,仅仅有一个名为t1的函数,函数中require了一个不存在的PHP文件

function t1()
{
	require 'notexists.php';
}

t1();

执行结果如下,可以看到非常详细的错误信息。程序首先执行t1函数,然后在代码的11行抛出了一个致命错误。

二、计算脚本的执行时间和消耗的内存

如果不使用xdebug,会使用microtime函数来计算执行时间,或者通过memory_get_usage/memory_get_peak_usage函数来计算消耗的内存。安装xdebug后,可以使用xdebug_time_index和xdebug_memory_usage/xdebug_peak_memory_usage来实现。要注意的是xdebug_time_index()函数返回的是脚本从mian开始执行到xdebug_time_index函数执行消耗的时间。

代码如下:

echo "xdebug_memory_usage:".xdebug_memory_usage();
echo 'xdebug_time_index:'.xdebug_time_index();
$arr=array();
for($i=1;$i<=10000;++$i)
{
	array_push($arr, $i);
}
echo "xdebug_memory_usage:".xdebug_memory_usage();
echo 'xdebug_time_index:'.xdebug_time_index();
while(!is_null(array_pop($arr)))
{

}
echo "xdebug_memory_usage:".xdebug_memory_usage();
echo 'xdebug_time_index:'.xdebug_time_index();
echo "xdebug_peak_memory_usage:".xdebug_peak_memory_usage();//显示内存峰值

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 02:17:07

XDebug用法大全(一)的相关文章

XDebug用法大全(二)

Xdebug除了可以以堆栈跟踪的方式显示异常之外,还可以令PHP可以像C#那样进行断点调试,甚至对代码进行性能分析. 一.使用Eclipse+Xdebug进行断点调试 首先,需要安装后Eclipse的PHP环境,在Eclipse官网网站上已经有集成的安装包了. 第二步,安装Eclipse的PDT插件,"Help"=>"Install New Software",在弹出的对话框中点击"Add...",安装PDT插件 安装完成后,进行下一步的配

Delphi ListView基本用法大全[delphi]

Delphi ListView基本用法大全 本文出处:http://hi.baidu.com/python120/item/4ea85f61af94e55b6895e6ac //增加项或列(字段) ListView1.Clear;ListView1.Columns.Clear;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Items[0].Caption:='id';List

NSString 用法大全。

一.NSString 创建字符串.  NSString *astring = @"This is a String!"; 创建空字符串,给予赋值.  NSString *astring = [[NSString alloc] init]; astring = @"This is a String!"; NSLog(@"astring:%@",astring); string release]; 使用变量初始化  NSString *name = 

MVC5 + EF6 + Bootstrap3 (9) HtmlHelper用法大全(下)

文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-httphelper-part2.html 上一节:MVC5 + EF6 + Bootstrap3 (8) HtmlHelper用法大全(上) 源码下载:点我下载 目录: 说明 Form表单 使用TagBuilder创建自定义标签 强类型HtmlHelper LabelFor数据标签 DisplayFor 和 EditorFor显示和编辑Model

TXT文件用法大全【荐】

来源:全文链接 (3)读取TXT文件指定某一行的第?到第?个字 UserVar t=2 "读出txt第几行文本" UserVar i=5 "从第几个字开始读取" UserVar O=8 "结束读取到第几个字" Text = Plugin.File.ReadFileEx("路径\文件名.txt") txtArray=Split(Text,"|") I=I-1 O=O-I:T=T-1 For O str=str

c#正则表达式用法大全

c#正则表达式用法大全  只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n}$". 只能输入至少n位的数字:"^\d{n,}$". 只能输入m~n位的数字:."^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$". 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$". 只能输入有1~3位小数的正实数:&quo

c++中const用法大全

 1. const 修饰普通变量 const修饰一个变量,意思就是这个变量是一个常量,不能被改变 const int x;              //x是一个整形常量 const double x;        //x 是一个double型常量 const 修饰的是一个指针时: const int *x;          //x 是一个指向常量整形的指针 int *const x:        //x 是一个常量指针. const int *const x ;          /

python之pandas用法大全

python之pandas用法大全 更新时间:2018年03月13日 15:02:28 投稿:wdc 我要评论 本文讲解了python的pandas基本用法,大家可以参考下 一.生成数据表1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用:?12import numpy as npimport pandas as pd2.导入CSV或者xlsx文件:?12df = pd.DataFrame(pd.read_csv('name.csv',header=1))df = pd.D

详细的 ADB 用法大全

详细的 ADB 用法大全 基本用法 命令语法 adb 命令的基本语法如下: adb [-d|-e|-s ] 如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s ] 这一部分,直接使用 adb . 为命令指定目标设备 如果有多个设备/模拟器连接,则需要为命令指定目标设备. 参数 含义 -d 指定当前唯一通过 USB 连接的 Android 设备为命令目标 -e 指定当前唯一运行的模拟器为命令目标 -s 指定相应 serialNumber 号的设备/模拟器为命令目标 在多个设备/模拟器连