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的十大要点(上)
Feb 04 PHP
php 删除记录实现代码
Mar 12 PHP
PHP校验ISBN码的函数代码
Jan 17 PHP
PHP $_FILES函数详解
Mar 09 PHP
discuz程序的PHP加密函数原理分析
Aug 05 PHP
解析zend Framework如何自动加载类
Jun 28 PHP
php自动更新版权信息显示的方法
Jun 19 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
php 生成签名及验证签名详解
Oct 26 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
详解php反序列化
Jun 10 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线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
jQuery遍历Form示例代码
2013/09/03 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
谈谈JS中的!!
2017/12/07 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
python基础教程之字典操作详解
2014/03/25 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
临床医师专业个人自我评价范文
2013/11/07 职场文书
计算机专业毕业生自荐信
2013/12/31 职场文书
生物制药专业求职信
2014/03/11 职场文书
股权转让协议书
2014/12/07 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python
pytorch中的model=model.to(device)使用说明
2021/05/24 Python