phpxdebug:利用Xdebug分析PHP程序 找出性能瓶颈

  经济学中有条著名80-20定律引用到编程中就是:80%性能瓶颈是由20%代码引起借助PHPXDebug扩展可以有效地找出这20%代码

  、安装配置

  1、下载PHPXDebug扩展网址:http://xdebug.org/

  2、在Linux下编译安装XDebug

  引用

  tar -xzf xdebug-2.0.0RC3.gz

  cd xdebug-2.0.0RC3

  /usr/local/php/bin/phpize

  ./configure --enable-xdebug

  cp modules/xdebug.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/

  注:/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/区别PHP版本路径区别也不定要放在该路径可以在zend_extension_ts中自行指定xdebug.so所在位置

  引用

  vi /usr/local/php/lib/php.ini

  修改php.ini去除PHP加速模块增加以下配置信息支持XDebug扩展

  [Xdebug]

  zend_extension_ts="/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/xdebug.so"

  xdebug.profiler_enable=on

  xdebug.trace_output_dir="/tmp/xdebug"

  xdebug.profiler_output_dir="/tmp/xdebug"

  xdebug.profiler_output_name="script"

  引用

  mkdir -p /tmp/xdebug

  chmod 755 /tmp/xdebug

  chown www:www /tmp/xdebug

  /usr/local/apache/bin/apachectl -k restart

  3、客户端(Windows):WinCacheGrind

  下载地址:http://sourceforge.net/projects/wincachegrind/

   2、分析过程

  1、访问你网站WebSite将首页上各种链接点击几遍XDebug在/tmp/xdebug目录生成以下文件:

  usr_local_apache_htdocs_app_checknum_chknum_php_cachegrind.out

  usr_local_apache_htdocs_app_login_showHeaderLogin_php_cachegrind.out

  usr_local_apache_htdocs_app_play_play_php_cachegrind.out

  usr_local_apache_htdocs_app_user_member_php_cachegrind.out

  usr_local_apache_htdocs_tag_tags_php_cachegrind.out

  usr_local_apache_htdocs_top_top_php_cachegrind.out

  2、将以上文件拷贝到Windows上用客户端软件SoftwareWinCacheGrind打开每个文件发现以下PHP执行所耗费时间最长:

  /usr/local/apache/htdocs/tag/tags.php      耗时840ms

   3、分析结果:

  1、/usr/local/apache/htdocs/tag/tags.php

  

  (5)可能造成瓶颈原因:

  要过滤156个关键字逐行存放在/usr/local/apache/template/tags/forbidden_tags.txt文件中文本数据库效率不高

  逐行读取fgets、以及去除串两边空白或者指定trim在高负载下效率低可以测试fopen、fread、fscanf的类文件读取对比

Tags:  php性能 netbeansxdebug xdebug phpxdebug

延伸阅读

最新评论

发表评论