最近安装了一下xedug,并且学习了一下如何使用。安装xdebug的初衷是为了深入研究一下PHP的垃圾回收机制。

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

先说一下安装吧。我使用的php版本是5.3.3,windows 32 为环境。

先从http://www.xdebug.org/files/php_xdebug-2.1.0-5.3-vc6.dll下载了拓展文件

放入php的ext目录下。

接着改写了php.ini

[Xdebug]
zend_extension="E:/wamp/bin\php/php5.3.3/ext/php_xdebug-2.1.0-5.3-vc6.dll"
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir="E:/wamp/webserver/php5/debuginfo"
xdebug.profiler_enable=on
xdebug.profiler_output_dir="E:/wamp/webserver/php5/debuginfo"

  保存配置,重启,在phpinfo中看到拓展安装成功。

linux下安装http://blog.csdn.net/rainysia/article/details/6780470

xdebug的学习

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

安装xdebug之后,出错显示可以快速定位到那一块

xdebug_debug_zval()//参数为变量名称,返回zval容器

xdebug_time_index() //返回运行至此处的时间,无参数

有时候我们的程序没有错误,但是并不是完美的。xdebug还可以将运行过程中的一些信息写入指定的目录,便于我们分析。在优化php代码执行效率的过程中,有个好办法是利用XDebug或XHProf生成Profile文件,然后查看Profile文件分析整个程序的瓶颈在哪里。如果用XDebug生成Profile文件。有专门查看profile的工具,如webgrind

Xdebug提供了各种自带的函数,并对已有的某些PHP函数进行覆写,可以方便地用于调试排错;Xdebug还可以跟踪程序的运行,通过对日志文件的分析,我们可以迅速找到程序运行的瓶颈所在,提高程序效率,从而提高整个系统的性能。

<?php
echo xdebug_peak_memory_usage();//程序运行期间的内存峰值
echo PHP_EOL;
echo xdebug_time_index();//时间,比microtime方便,单位是秒
echo PHP_EOL;
function testOne(){
echo 'one';
echo PHP_EOL;
}
function testTwo(){
echo 'two';
echo PHP_EOL;
} function testThree(){
echo 'three';
echo PHP_EOL;
}
echo memory_get_usage();//php自身提供的函数,运行至此占用的空间,单位byte
echo PHP_EOL;
echo xdebug_memory_usage();//xdebug提供的,运行至此占用的内存空间,单位是byte
echo PHP_EOL;
testOne();
testTwo();
testThree();
//上面哪一个函数运行中发生错误,错误显示会定位到 echo xdebug_peak_memory_usage();//程序运行期间的内存峰值,与其在脚本中的位置无关 ?>

  

xdebug安装及使用小结的更多相关文章

  1. PHP调试工具Xdebug安装配置教程

    说道PHP代码调试,对于有经验的PHPer,通过echo.print_r.var_dump函数,或PHP开发工具zend studio.editplus可解决大部分问题,但是对于PHP入门学习的童鞋来 ...

  2. linux下php调试工具xdebug安装配置

    xdebug简介 Xdebug是php的一款调试工具,是基于zend的一个扩展,可以用来跟踪,调试和分析PHP程序的运行状况.如变量,函数调试,性能监测,代码覆盖率等 xdebug安装 1.下载xde ...

  3. PHP 调试工具Xdebug安装配置

    ## PHP 调试工具Xdebug安装配置 一.Xdebug 介绍 Xdebug是一个开源的PHP程序调试工具,可以使用它来调试.跟踪及分析程序运行状态.当然,Xdebug需要结合PHP的编辑工具来打 ...

  4. Git 安装及使用小结

    Git 安装及使用小结 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline ...

  5. PHP性能调优---PHP调试工具Xdebug安装配置教程

    说到PHP代码调试,对于有经验的PHPer,通过echo.print_r.var_dump函数,或PHP开发工具zend studio.editplus可解决大部分问题,但是对于PHP入门学习的童鞋来 ...

  6. PHPStorm+Xdebug断点远程调试PHP xdebug安装

    一.xdebug安装 wget http://www.xdebug.org/files/xdebug-2.2.3.tgz #下载Xdebug tar xzf xdebug-2.2.3.tgz cd x ...

  7. Xdebug安装对应版本与配置

    Xdebug安装地址https://xdebug.org/download.php,进入下载页面后点击custom installation instructions,可以找到适合的Xdebug版本. ...

  8. XDebug安装配置教程

    笔者的开发环境如下:Windows8.1+Apache+PhpStorm+XDebug+Firefox(XDebug helper 1.4.3插件). 转载http://www.jb51.net/ar ...

  9. PhpStorm/Xdebug安装使用

    安装环境:XAMPP;phpStorm版本10; windows 7 64bit. XAMPP.phpStorm 都直接安装在了D盘根目录,9999m目录建在D:\xampp\htocts下,即目录工 ...

随机推荐

  1. javaScript中用eval()方法转换json对象

    var u = eval('('+user+')'); 1.对于服务器返回的JSON字符串,如果jQuery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将 ...

  2. Day7:掌握APICloud应用管理相关服务的配置使用和相关API,包括:应用发布、版本管理、云修复、闪屏广告等。理解APICloud APP优化策略和编码规范;了解APICloud多Widget管理机制和SuperWebview的使用

    主要内容: 1. 应用发布 1.1 云编译 1.2 全包加密 网页全包加密:对网页中全包的html,css,javascript代码进行加密,加密后的网友代码都是不可读的,并且不能通过常用的格式化工具 ...

  3. .net core 2.2 部署CentOS7(2)给虚拟机安装CentOS7

    目录: .net core 2.2 部署CentOS7(1)安装虚拟机 .net core 2.2 部署CentOS7(2)给虚拟机安装CentOS7 .net core 2.2 部署CentOS7( ...

  4. MD5 加盐(Java)

    本文转载自:https://blog.csdn.net/dingsai88/article/details/51637977 jar:https://pan.baidu.com/s/1-8JaRoUt ...

  5. MyBatis 常用写法

    MyBatis 常用写法 1.forEach 循环   forEach 元素的属性主要有 item, idnex, collection, open, separator, close. collec ...

  6. Executor、ExecutorService、ThreadPoolExecutor

    1.Executor Executor接口中中只有一个方法 执行已提交的Runnable任务对象. ExecutorService pool1 = Executors.newFixedThreadPo ...

  7. spring cloud 服务发现

    Eureka 当注册中心使用. 注: 1.当仅有一台Eureka时,不需要向别的节点注册. 2.集群的时候,需要相互注册. 工作方式: 前提: Eureka    //注册中心 provide1  / ...

  8. Implementation:Segment Tree 线段树

    早就听人提起过线段树,今天有题搞不出来,讨论上说要用一下线段树,看了下,本质上是空间划分索引,只不过是一维上面的,如果在二维则是四叉树,三维则是八叉树,如果可以动态调整那么跟R-Tree就很相似了,他 ...

  9. Jquery插件网站持续添加。。。

    Look Fro Less,Do More www.jq22.com

  10. java注册后缀样式(ajax提示)

    方法位置 <FORM id=form1 name=form1 action = "${pageContext.request.contextPath }/user_regist.act ...