zoukankan      html  css  js  c++  java
  • xdebug安装及使用小结

    最近安装了一下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/binphp/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();//程序运行期间的内存峰值,与其在脚本中的位置无关
    
    
    ?>
    

      

  • 相关阅读:
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    线性表——数组实现
    this指针与const成员函数
    类对象拷贝是不是赋值操作??
    你真的理解内联函数吗?
    名字查找先于类型检查:函数重载与作用域
    谈谈函数调用
    推荐形参使用常量引用:void func(const T &);
  • 原文地址:https://www.cnblogs.com/taijun/p/4204048.html
Copyright © 2011-2022 走看看