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上的memcache和memcached两个pecl库
Mar 29 PHP
php下尝试使用GraphicsMagick的缩略图功能
Jan 01 PHP
php中hashtable实现示例分享
Feb 13 PHP
PHP多线程类及用法实例
Dec 03 PHP
php通过session防url攻击方法
Dec 10 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
php支持中文字符串分割的函数
May 28 PHP
详细解读PHP中接口的应用
Aug 12 PHP
php验证手机号码
Nov 11 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 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
javascript,php获取函数参数对象的代码
2011/02/03 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
PHP时间和日期函数详解
2015/05/08 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
聘任合同书
2015/09/21 职场文书
MySQL GTID复制的具体使用
2022/05/20 MySQL