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 生成的XML以FLASH获取为乱码终极解决
Aug 07 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
PHP、Python和Javascript的装饰器模式对比
Feb 03 PHP
php无限分类使用concat如何实现
Nov 05 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 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
PHP实现生成唯一会员卡号
2015/08/24 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
JQuery 操作select标签实现代码
2010/05/14 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
工商管理应届生求职信
2013/10/07 职场文书
医科大学生的自我评价
2013/12/04 职场文书
护士求职自荐信范文
2014/03/19 职场文书
志愿者活动总结范文
2014/04/26 职场文书
入党推优材料
2014/06/02 职场文书
开展创先争优活动总结
2014/08/28 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
小学语文教学反思范文
2016/03/03 职场文书
html实现弹窗的实例
2021/06/09 HTML / CSS