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