PHP调试及性能分析工具Xdebug详解


Posted in PHP onFebruary 09, 2017

程序开发过程中,一般用得最多的调试方法就是用echo、print_r()、var_dump()、printf()等将语句打印出来。对PHP脚本的执行效率,通常是脚本执行时间。对数据库SQL的效率,通常是数据库Query时间,但这样并不能真正定位和分析脚本执行和数据库查询的瓶颈所在?对此,有一个叫Xdebug(www.xdebug.org)的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。

一、以windows平台对此模块的安装做简单的介绍:

1. 下载PHP的XDebug扩展,网址:http://xdebug.org/(这个根据你目前使用的PHP版本而定);

2. 将下载的模块(php_xdebug-2.0.5-5.2.dll)放到PHP的安装的 ext 目录下;

3. 配置php.ini文件,将以下几行添加

**************************************

extension=php_xdebug-2.0.5-5.2.dll
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir="E:/Projects/xdebug" #放置Xdebug输出的数据文件的目录
xdebug.profiler_output_dir="E:/Projects/xdebug"
********************************************************

4. 重启Apache服务器。完成!!!

5. <?php echo phpinfo();?>如果输出的内容中有看到xdebug,说明安装配置成功。

6. 在Windows平台下,可以用客户端(Windows):WinCacheGrind WinCacheGrind 这个软件来打开这些文件。可以更直观地显示其中内容:

二、以Linux平台作简单的介绍:

1. 在Linux下编译安装XDebug

[root@localhost src]# tar -xvf xdebug-2.0.5
[root@localhost xdebug-2.0.5]# /usr/local/php/bin/phpize
[root@localhost xdebug-2.0.5]# ./configure --enable-xdebug --with-php-config=/usr/locar/php/bin/php-config
[root@localhost xdebug-2.0.5]# make
可以将生成的 xdebug.so 拷贝到 extension_dir 所指向的路径目录。

2. 配置

vi /usr/local/php/lib/php.ini 修改php.ini,去除PHP加速模块,增加以下配置信息支持XDebug扩展
#extension=vld.so  //是输出OPCODES的模块
extension=xdebug.so
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir="/tmp/xdebug"
xdebug.profiler_output_dir="/tmp/xdebug"
xdebug.profile_output_name="script"

注:也可使用 [root@localhost xdebug-2.0.5]# /usr/local/php/bin/php -m 列出所有的扩展模块

3. 重启WEB服务器

[root@localhost xdebug-2.0.5]# service httpd restart      OK!!!

Xdebug工具会将跟踪的错误信息以日记的形式写入到输出的数据文件中,可以文件去查看,但为了更直观,还有一个图形界面的工具来分析跟踪的日记记录。WinCacheGrind (wincachegrind.souceforge.net)此软件直接安装就行,从图形窗口中可以将整个程序的结构,每个函数被调用的次数,执行时间都一目了然。很专业很方便!!!

总结:Xdebug可以跟踪程序的运行,通过对日志文件的分析,我们可以迅速找到程序运行的瓶颈所在,提高程序效率,从而提高整个系统的性能。

以上这篇PHP调试及性能分析工具Xdebug详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP安全配置
Oct 09 PHP
PHP中的日期及时间
Nov 23 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
for循环连续求和、九九乘法表代码
Feb 20 PHP
php查询相似度最高的字符串的方法
Mar 12 PHP
php生成二维码
Aug 10 PHP
thinkPHP内置字符串截取函数用法详解
Nov 15 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 PHP
php从身份证获取性别和出生年月
Feb 09 #PHP
Yii2框架实现数据库常用操作总结
Feb 08 #PHP
Yii2实现中国省市区三级联动实例
Feb 08 #PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 #PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 #PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 #PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 #PHP
You might like
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
php入门小知识
2008/03/24 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
js的event详解。
2006/09/06 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python访问系统环境变量的方法
2015/04/29 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
python基础教程之分支、循环简单用法
2016/06/16 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
浅析Python数据处理
2018/05/02 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
解决python flask中config配置管理的问题
2019/07/26 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
Python json读写方式和字典相互转化
2020/04/18 Python
Keras设置以及获取权重的实现
2020/06/19 Python
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
优秀党员个人总结
2015/02/14 职场文书
主持人大赛开场白
2015/05/29 职场文书
大学军训通讯稿
2015/07/18 职场文书
初中生活随笔
2015/08/15 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS