Ubuntu下如何使用Xdebug分析PHP程序的瓶颈?

运维 系统运维
编程中,80%的性能瓶颈是由20%的代码引起的。Ubuntu下借助PHP的XDebug扩展,可以有效地找出这20%的代码。希望能够对大家有所帮助。

Ubuntu下使用Xdebug可分析出PHP程序的瓶颈,具体内容如下所述。

经济学中有一条著名的80-20定律,引用到编程中,就是:80%的性能瓶颈是由20%的代码引起的。

Ubuntu下借助PHP的XDebug扩展,可以有效地找出这20%的代码。

一、安装配置

1、下载PHP的XDebug扩展,网址:http://xdebug.org/

2、在Ubuntu下编译安装XDebug

 

  1. sudotarvxfxdebug-2.1.0.tgzcdxdebug-2.1.0.tgz  
  2.  
  3. sudo/usr/local/php/bin/phpize  
  4.  
  5. sudo./configure--enable-xdebug--with-php-config=/usr/local/php/bin/php-config  
  6.  
  7. sodumake&&makeinstall 

 

注:安装完成之后在/usr/local/php/lib/php/extension/no-debug-non-zts-20090626下会有一个xdebug.so文件

 

  1. soduvim/usr/local/php/lib/php.ini 

 

修改php.ini,增加以下配置信息支持XDebug扩展

 

  1. zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so  
  2.  
  3. [Xdebug]  
  4.  
  5. xdebug.auto_trace=On 
  6.  
  7. xdebug.collect_params=On 
  8.  
  9. xdebug.collect_return=On 
  10.  
  11. xdebug.trace_output_dir="/tmp/xdebug" 
  12.  
  13. xdebug.profiler_enable=On 
  14.  
  15. xdebug.profiler_output_dir="/tmp/xdebug" 
  16.  
  17. xdebug.profiler_output_name="cachegrind.out.%c" 

 

修改文件夹权限,使xdebug能够在指定文件夹中写log

 

  1. sudomkdir-p/tmp/xdebug  
  2.  
  3. sudochmod777/tmp/xdebug  
  4.  
  5. sudochowngroup:user/tmp/xdebug  
  6.  
  7. sudo/usr/local/apache/bin/apachectl-krestart 

 

此时,xdebug应该已经配置成功了,可以使用来查看php信息,如果有xdebug这么一栏,则说明安装成功。

这时,每当使用web浏览器访问一次php文件,就会产生一个相应时间戳的log文件,可以查看它记录的信息。

我使用的log分析软件是WinCacheGrind,因为是windows版,所以需要使用wine启动。

接下来,进入WinCacheGrind就能看到每个函数执行的时间了~

总结:

希望本文介绍的在Ubuntu下使用Xdebug分析PHP程序的瓶颈的内容能够对读者有所帮助,更多有关linux系统的知识还有待于读者去探索和学习。

【编辑推荐】

  1. 在Ubuntu下如何使用TAP网卡?
  2. Ubuntu10.10下如何配置和使用SSH?
  3. Ubuntu终端下Nethogs网络流量监控工具
  4. Ubuntu10.04下载Android2.2源代码的步骤
  5. Ubuntu中GRUB2管理器GrubCustomizer的安装方法
责任编辑:韩亚珊 来源: 雨林木风
相关推荐

2010-10-18 09:59:22

PHP程序员Web开发

2022-08-22 16:04:00

WiresharkTCP吞吐

2011-05-11 17:49:12

PHP

2011-09-02 19:26:38

2011-09-15 17:30:55

ubuntuSSH

2020-12-29 15:00:46

PerfVTune工具

2011-09-15 16:44:36

UbuntuGoldenDict

2011-09-05 13:41:32

UbuntueCryptfs

2011-08-30 15:19:23

2011-03-11 10:39:05

LAMP错误提示

2011-09-07 17:28:32

ubuntuproj

2011-09-07 14:01:34

ubuntuPHP

2009-12-02 13:53:12

PHP使用技巧

2011-09-02 16:12:48

ubuntuskipfish

2019-10-31 11:50:19

MySQL数据库Windows

2009-07-15 17:52:23

sqlite jdbc

2009-03-01 21:53:48

UbuntuChrome使用开发

2011-08-30 15:53:07

Ubuntussh

2011-09-15 10:52:09

2011-03-21 09:17:06

UbuntuNagios
点赞
收藏

51CTO技术栈公众号