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 相关文章推荐
火车头采集器3.0采集图文教程
Mar 17 PHP
php include和require的区别深入解析
Jun 17 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
Sep 27 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
php准确计算复活节日期的方法
Apr 18 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 PHP
PDO::lastInsertId讲解
Jan 29 PHP
laravel 多图上传及图片的存储例子
Oct 14 PHP
tp5.1 框架查询表达式用法详解
May 25 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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
smarty循环嵌套用法示例分析
2016/07/19 PHP
浅谈PHP的反射API
2017/02/26 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
详解Python发送邮件实例
2016/01/10 Python
浅谈django的render函数的参数问题
2018/10/16 Python
Python创建或生成列表的操作方法
2019/06/19 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
通信工程专业女生个人求职信
2013/09/21 职场文书
大学生个人总结的自我评价
2013/10/05 职场文书
关于安全的广播稿
2014/10/23 职场文书
男人帮观后感
2015/06/18 职场文书
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python