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 相关文章推荐
也谈截取首页新闻 - 范例
Oct 09 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
优化PHP程序的方法小结
Feb 23 PHP
用来解析.htpasswd文件的PHP类
Sep 05 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
一个完整的php文件上传类实例讲解
Oct 27 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
PDO::beginTransaction讲解
Jan 27 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
php修改word的实例方法
Nov 17 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短网址的生成代码(仿微博短网址)
2014/05/07 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
jquery中选择块并改变属性值的方法
2013/07/31 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
AngularJS路由切换实现方法分析
2017/03/17 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
python多线程操作实例
2014/11/21 Python
详解Python中的join()函数的用法
2015/04/07 Python
在Python中编写数据库模块的教程
2015/04/29 Python
python opencv之分水岭算法示例
2018/02/24 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
python之列表推导式的用法
2019/11/29 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
教师个人事迹材料
2014/12/17 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫
Hive HQL支持2种查询语句风格
2022/06/25 数据库