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 组件化编程技巧
Jun 06 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
PHP中用hash实现的数组
Jul 17 PHP
解析php中两种缩放图片的函数,为图片添加水印
Jun 14 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
PHP合并静态文件详解
Nov 14 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
php通过rmdir删除目录的简单用法
Mar 18 PHP
php脚本运行时的超时机制详解
Feb 17 PHP
PHP反射原理与用法深入分析
Sep 28 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
初探PHP5
2006/10/09 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
js 调整select 位置的函数
2008/02/21 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
python opencv肤色检测的实现示例
2020/12/21 Python
高中生自我评价个人范文
2013/11/09 职场文书
餐饮部总监岗位职责范文
2014/02/13 职场文书
实习工作表现评语
2014/12/31 职场文书
基层党建工作简报
2015/07/21 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
思想工作总结范文
2015/08/12 职场文书
初中化学教学反思
2016/02/22 职场文书
创业计划书之外语培训班
2019/11/02 职场文书
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python
java基础——多线程
2021/07/03 Java/Android
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python