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 相关文章推荐
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
php实现的MySQL通用查询程序
Mar 11 PHP
PHP生成UTF8文件的方法
May 15 PHP
php 团购折扣计算公式
Nov 24 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 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中设置index.php文件为只读的方法
2013/02/06 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
jquery如何获取复选框的值
2013/12/12 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
python3调用R的示例代码
2018/02/23 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
Python requests库用法实例详解
2018/08/14 Python
Python中print和return的作用及区别解析
2019/05/05 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
python中with用法讲解
2020/02/07 Python
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
幼儿园春游活动方案
2014/01/19 职场文书
公司请假条格式
2014/04/11 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
党员检讨书范文
2014/12/27 职场文书
三峡导游词
2015/01/31 职场文书
小学班主任个人总结
2015/03/03 职场文书
个人收入证明格式
2015/06/24 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python